diff --git a/account_statement_import_sheet_file/tests/test_account_statement_import_sheet_file.py b/account_statement_import_sheet_file/tests/test_account_statement_import_sheet_file.py index de38578d0..9918d1d4f 100644 --- a/account_statement_import_sheet_file/tests/test_account_statement_import_sheet_file.py +++ b/account_statement_import_sheet_file/tests/test_account_statement_import_sheet_file.py @@ -9,50 +9,60 @@ from odoo import fields from odoo.exceptions import UserError -from odoo.tests import common +from odoo.tests import common, tagged from odoo.tools import float_round +@tagged("post_install", "-at_install") class TestAccountStatementImportSheetFile(common.TransactionCase): - def setUp(self): - super().setUp() - - self.now = fields.Datetime.now() - self.currency_eur = self.env.ref("base.EUR") - self.currency_usd = self.env.ref("base.USD") - self.currency_usd.active = True + @classmethod + def setUpClass(cls): + super().setUpClass() + if not cls.env.company.chart_template_id: + # Load a CoA if there's none in current company + coa = cls.env.ref("l10n_generic_coa.configurable_chart_template", False) + if not coa: + # Load the first available CoA + coa = cls.env["account.chart.template"].search( + [("visible", "=", True)], limit=1 + ) + coa.try_loading(company=cls.env.company, install_demo=False) + cls.now = fields.Datetime.now() + cls.currency_eur = cls.env.ref("base.EUR") + cls.currency_usd = cls.env.ref("base.USD") + cls.currency_usd.active = True # Make sure the currency of the company is USD, as this not always happens # To be removed in V17: https://github.com/odoo/odoo/pull/107113 - self.company = self.env.company - self.env.cr.execute( + cls.company = cls.env.company + cls.env.cr.execute( "UPDATE res_company SET currency_id = %s WHERE id = %s", - (self.env.ref("base.USD").id, self.company.id), + (cls.env.ref("base.USD").id, cls.company.id), ) # Activate EUR for unit test, by default is not active - self.currency_eur.active = True - self.sample_statement_map = self.env.ref( + cls.currency_eur.active = True + cls.sample_statement_map = cls.env.ref( "account_statement_import_sheet_file.sample_statement_map" ) - self.AccountJournal = self.env["account.journal"] - self.AccountBankStatement = self.env["account.bank.statement"] - self.AccountStatementImport = self.env["account.statement.import"] - self.AccountStatementImportSheetMapping = self.env[ + cls.AccountJournal = cls.env["account.journal"] + cls.AccountBankStatement = cls.env["account.bank.statement"] + cls.AccountStatementImport = cls.env["account.statement.import"] + cls.AccountStatementImportSheetMapping = cls.env[ "account.statement.import.sheet.mapping" ] - self.AccountStatementImportWizard = self.env["account.statement.import"] - self.suspense_account = self.env["account.account"].create( + cls.AccountStatementImportWizard = cls.env["account.statement.import"] + cls.suspense_account = cls.env["account.account"].create( { "code": "987654", "name": "Suspense Account", "account_type": "asset_current", } ) - self.parser = self.env["account.statement.import.sheet.parser"] + cls.parser = cls.env["account.statement.import.sheet.parser"] # Mock the mapping object to return predefined separators - self.mock_mapping_comma_dot = Mock() - self.mock_mapping_comma_dot._get_float_separators.return_value = (",", ".") - self.mock_mapping_dot_comma = Mock() - self.mock_mapping_dot_comma._get_float_separators.return_value = (".", ",") + cls.mock_mapping_comma_dot = Mock() + cls.mock_mapping_comma_dot._get_float_separators.return_value = (",", ".") + cls.mock_mapping_dot_comma = Mock() + cls.mock_mapping_dot_comma._get_float_separators.return_value = (".", ",") def _data_file(self, filename, encoding=None): mode = "rt" if encoding else "rb"