diff options
| author | Martin Trigaux <mat@odoo.com> | 2019-10-16 12:05:02 +0200 |
|---|---|---|
| committer | Martin Trigaux <mat@odoo.com> | 2019-11-19 10:37:01 +0100 |
| commit | 49fbab5329fb95e759c3f90d4e9efb1717a9695c (patch) | |
| tree | 5ced82c181feb5f9155b27f7ac2aca7b824080c6 /odoo/addons/base/tests | |
| parent | 7bf6992869804973b41a785037fc176cd608320e (diff) | |
[IMP] base: split and deprecate load_lang
load_lang was a kind of hybrid method trying to active or creating a
language if not found. This was error prone.
Instead rely on two methods with clear purpose:
ResLang._create_lang(lang, lang_name=None)
- create a new res.lang entry using the locale of the server
return the res.lang record to match the API of _activate_lang
ResLang._active_lang(code)
- activate the given code lang
Most of the time, _active_lang is what is expected
tools.trans_load_data and IrTranslation._load_module_terms no longer
activate the language if not active.
Loading the translations should be explicit on an activated language,
it is too error prone to silently activate/create a language if not
found.
Remove lang_name from trans_load_data as no longer needed.
Diffstat (limited to 'odoo/addons/base/tests')
| -rw-r--r-- | odoo/addons/base/tests/test_expression.py | 1 | ||||
| -rw-r--r-- | odoo/addons/base/tests/test_misc.py | 3 | ||||
| -rw-r--r-- | odoo/addons/base/tests/test_qweb.py | 6 | ||||
| -rw-r--r-- | odoo/addons/base/tests/test_translate.py | 13 | ||||
| -rw-r--r-- | odoo/addons/base/tests/test_views.py | 2 |
5 files changed, 14 insertions, 11 deletions
diff --git a/odoo/addons/base/tests/test_expression.py b/odoo/addons/base/tests/test_expression.py index 61d470e094c..28103e9e474 100644 --- a/odoo/addons/base/tests/test_expression.py +++ b/odoo/addons/base/tests/test_expression.py @@ -672,6 +672,7 @@ class TestExpression(SavepointCaseWithUserDemo): def test_lp1071710(self): """ Check that we can exclude translated fields (bug lp:1071710) """ # first install french language + self.env['res.lang']._activate_lang('fr_FR') self.env['ir.translation']._load_module_terms(['base'], ['fr_FR']) self.env['res.partner'].search([('name', '=', 'Pepper Street')]).country_id = self.env.ref('base.be') # actual test diff --git a/odoo/addons/base/tests/test_misc.py b/odoo/addons/base/tests/test_misc.py index 29d0a021558..5276b2ed6f0 100644 --- a/odoo/addons/base/tests/test_misc.py +++ b/odoo/addons/base/tests/test_misc.py @@ -220,7 +220,8 @@ class TestFormatLangDate(TransactionCase): lang = self.env['res.lang'] # Activate French and Simplified Chinese (test with non-ASCII characters) - lang.search([('active', '=', False), ('code', 'in', ['fr_FR', 'zh_CN'])]).write({'active': True}) + lang._activate_lang('fr_FR') + lang._activate_lang('zh_CN') # -- test `date` # Change a single parameter diff --git a/odoo/addons/base/tests/test_qweb.py b/odoo/addons/base/tests/test_qweb.py index 13b95926f47..780dc6a0cc5 100644 --- a/odoo/addons/base/tests/test_qweb.py +++ b/odoo/addons/base/tests/test_qweb.py @@ -522,10 +522,8 @@ class TestQWebNS(TransactionCase): current_lang = 'en_US' other_lang = 'fr_FR' - self.env['res.lang'].load_lang(lang=other_lang) - - self.env['res.lang']._lang_get(other_lang).write({ - 'active': True, + lang = self.env['res.lang']._activate_lang(other_lang) + lang.write({ 'decimal_point': '*', 'thousands_sep': '/' }) diff --git a/odoo/addons/base/tests/test_translate.py b/odoo/addons/base/tests/test_translate.py index 12c3f8b2d96..411aa82f1f1 100644 --- a/odoo/addons/base/tests/test_translate.py +++ b/odoo/addons/base/tests/test_translate.py @@ -247,6 +247,7 @@ class TestTranslation(TransactionCase): def setUp(self): super(TestTranslation, self).setUp() + lang = self.env['res.lang']._activate_lang('fr_FR') self.env['ir.translation']._load_module_terms(['base'], ['fr_FR']) self.customers = self.env['res.partner.category'].create({'name': 'Customers'}) self.env['ir.translation'].create({ @@ -436,7 +437,7 @@ class TestTranslationWrite(TransactionCase): self.assertEqual(source_name[0]['name'], "English Name", "Reference field not updated") def test_03_fr_single(self): - self.env['res.lang'].load_lang('fr_FR') + self.env['res.lang']._activate_lang('fr_FR') self.env['res.users'].with_context(active_test=False).search([]).write({'lang': 'fr_FR'}) self.env.ref('base.lang_en').active = False @@ -454,7 +455,7 @@ class TestTranslationWrite(TransactionCase): self.assertEqual(len(translations), 0, "No French translation should be created when writing in French") def test_04_fr_multi(self): - self.env['res.lang'].load_lang('fr_FR') + self.env['res.lang']._activate_lang('fr_FR') langs = self.env['res.lang'].get_installed() self.assertEqual([('en_US', 'English (US)'), ('fr_FR', 'French / Français')], langs, @@ -481,9 +482,9 @@ class TestTranslationWrite(TransactionCase): ]) def test_04_fr_multi_no_en(self): - self.env['res.lang'].load_lang('fr_FR') + self.env['res.lang']._activate_lang('fr_FR') + self.env['res.lang']._activate_lang('es_ES') self.env['res.users'].with_context(active_test=False).search([]).write({'lang': 'fr_FR'}) - self.env['res.lang'].load_lang('es_ES') self.env.ref('base.lang_en').active = False langs = self.env['res.lang'].get_installed() @@ -504,7 +505,7 @@ class TestTranslationWrite(TransactionCase): ]) def test_05_remove_multi(self): - self.env['res.lang'].load_lang('fr_FR') + self.env['res.lang']._activate_lang('fr_FR') langs = self.env['res.lang'].get_installed() self.assertEqual([('en_US', 'English (US)'), ('fr_FR', 'French / Français')], langs, @@ -576,6 +577,8 @@ class TestTranslationWrite(TransactionCase): class TestXMLTranslation(TransactionCase): def setUp(self): super(TestXMLTranslation, self).setUp() + self.env['res.lang']._activate_lang('fr_FR') + self.env['res.lang']._activate_lang('nl_NL') self.env['ir.translation']._load_module_terms(['base'], ['fr_FR', 'nl_NL']) def create_view(self, archf, terms, **kwargs): diff --git a/odoo/addons/base/tests/test_views.py b/odoo/addons/base/tests/test_views.py index 4440ac4a1eb..14e5786a937 100644 --- a/odoo/addons/base/tests/test_views.py +++ b/odoo/addons/base/tests/test_views.py @@ -606,7 +606,7 @@ class TestNoModel(ViewCase): """ Test if translations work correctly without a model """ - self.env['res.lang'].load_lang('fr_FR') + self.env['res.lang']._activate_lang('fr_FR') ARCH = '<template name="foo">%s</template>' TEXT_EN = "Copyright copyrighter" TEXT_FR = u"Copyrighter, tous droits réservés" |
