You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
3.8 KiB

  1. # -*- coding: utf-8 -*-
  2. # Copyright 2017 Eficent Business and IT Consulting Services S.L.
  3. # (http://www.eficent.com)
  4. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
  5. from openerp import fields
  6. from openerp.tests.common import SavepointCase
  7. class TestAccountJournalReport(SavepointCase):
  8. """
  9. Tests for Account Journal Report.
  10. """
  11. def setUp(self):
  12. super(TestAccountJournalReport, self).setUp()
  13. self.report_model = \
  14. self.env['report.account_journal_report.journal_ledger']
  15. self.wiz = self.env['account.journal.entries.report']
  16. self.report_name = 'account_journal_report.journal_ledger'
  17. self.action_name = 'account_journal_report.' \
  18. 'account_journal_ledger_report'
  19. self.report_xlsx_name = 'account_journal_report.journal_ledger_xlsx'
  20. self.action_xlsx_name = 'account_journal_report.' \
  21. 'action_account_journal_ledger_xlsx'
  22. self.report_title = 'Journal Ledger'
  23. self.today = fields.Date.today()
  24. self.account_type = self.env['account.account.type'].create({
  25. 'name': 'Test account type',
  26. 'type': 'other',
  27. })
  28. self.account = self.env['account.account'].create({
  29. 'name': 'Test account',
  30. 'code': 'TEST',
  31. 'user_type_id': self.account_type.id,
  32. })
  33. self.journal = self.env['account.journal'].create({
  34. 'name': 'Test journal',
  35. 'code': 'TEST',
  36. 'type': 'general',
  37. })
  38. self.move = self.env['account.move'].create({
  39. 'journal_id': self.journal.id,
  40. 'date': fields.Date.today(),
  41. 'line_ids': [
  42. (0, 0, {
  43. 'name': 'Debit line',
  44. 'account_id': self.account.id,
  45. 'debit': 100,
  46. }),
  47. (0, 0, {
  48. 'name': 'Credit line',
  49. 'account_id': self.account.id,
  50. 'credit': 100,
  51. }),
  52. ],
  53. })
  54. self.move.post()
  55. def test_account_journal_report(self):
  56. wiz_id = self.wiz.create({
  57. 'journal_ids': [(6, 0, self.journal.ids)],
  58. 'date_start': self.today,
  59. 'date_end': self.today,
  60. })
  61. report = wiz_id.print_report()
  62. self.assertDictContainsSubset(
  63. {
  64. 'type': 'ir.actions.report.xml',
  65. 'report_name': self.report_name,
  66. 'report_type': 'qweb-pdf',
  67. },
  68. report,
  69. 'There was an error and the PDF report was not generated.'
  70. )
  71. data = wiz_id.read()[0]
  72. report = self.env.ref(self.action_name).\
  73. render_report(
  74. wiz_id.ids, self.report_name, data
  75. )
  76. self.assertGreaterEqual(len(report[0]), 1)
  77. self.assertEqual(report[1], 'html')
  78. def test_account_journal_report_xlsx(self):
  79. wiz_id = self.wiz.create({
  80. 'journal_ids': [(6, 0, self.journal.ids)],
  81. 'date_start': self.today,
  82. 'date_end': self.today,
  83. })
  84. report = wiz_id.print_report_xlsx()
  85. self.assertDictContainsSubset(
  86. {
  87. 'type': 'ir.actions.report.xml',
  88. 'report_type': 'xlsx',
  89. 'report_name': self.report_xlsx_name,
  90. },
  91. report,
  92. 'There was an error and the XLSX report was not generated.'
  93. )
  94. data = wiz_id.read()[0]
  95. report_xlsx = self.env.ref(self.action_xlsx_name).\
  96. render_report(
  97. wiz_id.ids, self.report_xlsx_name, data
  98. )
  99. self.assertGreaterEqual(len(report_xlsx[0]), 1)
  100. self.assertEqual(report_xlsx[1], 'xlsx')