changeset f4497659144c in trytond:5.6
details: https://hg.tryton.org/trytond?cmd=changeset;node=f4497659144c
description:
        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
        (grafted from c7a827a5f88bf95b73f15c1499e8a50766bbeedf)
diffstat:

 trytond/ir/configuration.py    |  16 ++++++++++++++++
 trytond/tests/test_modelsql.py |  26 ++++++++++++++++++++++++++
 2 files changed, 42 insertions(+), 0 deletions(-)

diffs (59 lines):

diff -r 0ba81785b8a7 -r f4497659144c trytond/ir/configuration.py
--- a/trytond/ir/configuration.py       Mon Oct 12 13:01:14 2020 +0200
+++ b/trytond/ir/configuration.py       Wed Oct 14 14:43:40 2020 +0200
@@ -29,3 +29,19 @@
             language = config.get('database', 'language')
         cls._get_language_cache.set(None, language)
         return language
+
+    @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 -r 0ba81785b8a7 -r f4497659144c trytond/tests/test_modelsql.py
--- a/trytond/tests/test_modelsql.py    Mon Oct 12 13:01:14 2020 +0200
+++ b/trytond/tests/test_modelsql.py    Wed Oct 14 14:43:40 2020 +0200
@@ -555,6 +555,32 @@
 
         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"

Reply via email to