# Copyright 2017 ACSONE SA/NV # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import base64 from datetime import date from dateutil import relativedelta from odoo import fields from odoo.tests.common import TransactionCase class TestAccountExportCsv(TransactionCase): def setUp(self): super(TestAccountExportCsv, self).setUp() self.report_wizard = self.env["account.csv.export"] today_dt = date.today() next_month_date = today_dt + relativedelta.relativedelta(months=1) self.report_date_start = fields.Date.to_string(today_dt) self.report_date_end = fields.Date.to_string(next_month_date) def test_1(self): report_wizard = self.report_wizard.create( {"date_start": self.report_date_start, "date_end": self.report_date_end} ) report_wizard.action_manual_export_account() def test_2(self): report_wizard = self.report_wizard.create( {"date_start": self.report_date_start, "date_end": self.report_date_end} ) report_wizard.action_manual_export_analytic() def test_3(self): report_wizard = self.report_wizard.create( {"date_start": self.report_date_start, "date_end": self.report_date_end} ) report_wizard.action_manual_export_journal_entries() def test_file_content(self): report_wizard = self.report_wizard.create( { "date_start": "2000-01-01", "date_end": "2200-01-01", } ) report_wizard.action_manual_export_journal_entries() res = base64.decodebytes(report_wizard.data) line_number = self.env["account.move.line"].search_count([]) # check the number of lines in file: include header + EOF line self.assertEqual(len(res.decode().split("\r\n")), line_number + 2)