from odoo.addons.account.tests.common import AccountTestCommon from odoo.tests import tagged @tagged('post_install', '-at_install') class TestSettings(AccountTestCommon): def test_switch_taxB2B_taxB2C(self): """ Since having users both in the tax B2B and tax B2C groups raise, modifications of the settings must be done in the right order; otherwise it is impossible to change the settings. """ # at each setting change, all users should be removed from one group and added to the other # so picking an arbitrary witness should be equivalent to checking that everything worked. config = self.env['res.config.settings'].create({}) config.show_line_subtotals_tax_selection = "tax_excluded" config._onchange_sale_tax() config.flush() config.execute() self.assertEqual(self.env.user.has_group('account.group_show_line_subtotals_tax_excluded'), True) self.assertEqual(self.env.user.has_group('account.group_show_line_subtotals_tax_included'), False) config.show_line_subtotals_tax_selection = "tax_included" config._onchange_sale_tax() config.flush() config.execute() self.assertEqual(self.env.user.has_group('account.group_show_line_subtotals_tax_excluded'), False) self.assertEqual(self.env.user.has_group('account.group_show_line_subtotals_tax_included'), True) config.show_line_subtotals_tax_selection = "tax_excluded" config._onchange_sale_tax() config.flush() config.execute() self.assertEqual(self.env.user.has_group('account.group_show_line_subtotals_tax_excluded'), True) self.assertEqual(self.env.user.has_group('account.group_show_line_subtotals_tax_included'), False)