From ab14e12f1fc0eaa3b10882cee8d6838c50f67b50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 14 Oct 2020 14:43:40 +0200 Subject: [PATCH] Restore English language on tear down The translations tests change the default language on setup and commit the change. So we must restore the initial state of the database at the end of the test case. issue9702 review312521002 --- trytond/ir/configuration.py | 16 ++++++++++++++++ trytond/tests/test_modelsql.py | 26 ++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/trytond/ir/configuration.py b/trytond/ir/configuration.py index 2dd408e93f..ecdda9b23b 100644 --- a/trytond/ir/configuration.py +++ b/trytond/ir/configuration.py @@ -31,3 +31,19 @@ class Configuration(ModelSingleton, ModelSQL): def check(self): "Check configuration coherence on pool initialisation" pass + + @classmethod + def create(cls, vlist): + records = super().create(vlist) + cls._get_language_cache.clear() + return records + + @classmethod + def write(cls, *args): + super().write(*args) + cls._get_language_cache.clear() + + @classmethod + def delete(cls, records): + super().delete(records) + cls._get_language_cache.clear() diff --git a/trytond/tests/test_modelsql.py b/trytond/tests/test_modelsql.py index cccc8174e4..cadda219aa 100644 --- a/trytond/tests/test_modelsql.py +++ b/trytond/tests/test_modelsql.py @@ -555,6 +555,32 @@ class ModelSQLTranslationTestCase(unittest.TestCase): Transaction().commit() + @classmethod + def tearDownClass(cls): + super().tearDownClass() + cls.restore_language() + + @classmethod + @with_transaction() + def restore_language(cls): + pool = Pool() + Language = pool.get('ir.lang') + Configuration = pool.get('ir.configuration') + + english, = Language.search([('code', '=', 'en')]) + english.translatable = True + english.save() + + config = Configuration(1) + config.language = 'en' + config.save() + + Language.write(Language.search([('code', '!=', 'en')]), { + 'translatable': False, + }) + + Transaction().commit() + @with_transaction() def test_create_default_language(self): "Test create default language"