diff --git a/addons/product/tests/test_common.py b/addons/product/tests/test_common.py index 723e1ff6fae..245910ac309 100644 --- a/addons/product/tests/test_common.py +++ b/addons/product/tests/test_common.py @@ -7,7 +7,7 @@ from odoo.addons.product.tests.common import ProductCommon @tagged('post_install', '-at_install') -class TestProductCommon(ProductCommon): +class TestProduct(ProductCommon): def test_common(self): self.assertEqual(self.consumable_product.type, 'consu') diff --git a/odoo/addons/base/tests/common.py b/odoo/addons/base/tests/common.py index f5b57da1003..67608368a7a 100644 --- a/odoo/addons/base/tests/common.py +++ b/odoo/addons/base/tests/common.py @@ -39,7 +39,11 @@ class BaseCommon(TransactionCase): # Enforce constant currency currency = cls._enable_currency(currency_code) if not cls.env.company.currency_id == currency: - cls.env.company.currency_id = currency + cls.env.transaction.cache.set(cls.env.company, type(cls.env.company).currency_id, currency.id, dirty=True) + # this is equivalent to cls.env.company.currency_id = currency but without triggering buisness code checks. + # The value is added in cache, and the cache value is set as dirty so that that + # the value will be written to the database on next flush. + # this was needed because some journal entries may exist when running tests, especially l10n demo data. @classmethod def _enable_currency(cls, currency_code):