summaryrefslogtreecommitdiff
path: root/odoo/addons/base/tests
diff options
context:
space:
mode:
authorMartin Trigaux <mat@odoo.com>2019-10-16 12:05:02 +0200
committerMartin Trigaux <mat@odoo.com>2019-11-19 10:37:01 +0100
commit49fbab5329fb95e759c3f90d4e9efb1717a9695c (patch)
tree5ced82c181feb5f9155b27f7ac2aca7b824080c6 /odoo/addons/base/tests
parent7bf6992869804973b41a785037fc176cd608320e (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.py1
-rw-r--r--odoo/addons/base/tests/test_misc.py3
-rw-r--r--odoo/addons/base/tests/test_qweb.py6
-rw-r--r--odoo/addons/base/tests/test_translate.py13
-rw-r--r--odoo/addons/base/tests/test_views.py2
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"