diff options
| author | Christophe Simonis <chs@odoo.com> | 2018-11-28 17:44:46 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2018-11-28 17:44:46 +0100 |
| commit | efe7ca16b77edce73bf538ccb70678a52afdfd1d (patch) | |
| tree | ad5af92d3bb397fd58fd861e6ce8e3abd2902ec6 /odoo/addons/base/tests/test_translate.py | |
| parent | b09f624f20781d65baf2060df40383898e6f86e5 (diff) | |
| parent | bb6f6c57f97b091f3f68161039de980eb9ce739d (diff) | |
[MERGE] forward port branch 11.0 up to bb6f6c57f97
Diffstat (limited to 'odoo/addons/base/tests/test_translate.py')
| -rw-r--r-- | odoo/addons/base/tests/test_translate.py | 82 |
1 files changed, 50 insertions, 32 deletions
diff --git a/odoo/addons/base/tests/test_translate.py b/odoo/addons/base/tests/test_translate.py index e8a76b12c86..399508e9fcd 100644 --- a/odoo/addons/base/tests/test_translate.py +++ b/odoo/addons/base/tests/test_translate.py @@ -310,30 +310,36 @@ class TestTranslation(TransactionCase): class TestXMLTranslation(TransactionCase): def setUp(self): super(TestXMLTranslation, self).setUp() - self.env['ir.translation'].load_module_terms(['base'], ['fr_FR']) + self.env['ir.translation'].load_module_terms(['base'], ['fr_FR', 'nl_NL']) + + def create_view(self, archf, terms, **kwargs): + view = self.env['ir.ui.view'].create({ + 'name': 'test', + 'model': 'res.partner', + 'arch': archf % terms, + }) + for lang, trans_terms in kwargs.items(): + for src, val in pycompat.izip(terms, trans_terms): + self.env['ir.translation'].create({ + 'type': 'model', + 'name': 'ir.ui.view,arch_db', + 'lang': lang, + 'res_id': view.id, + 'src': src, + 'value': val, + 'state': 'translated', + }) + return view def test_copy(self): """ Create a simple view, fill in translations, and copy it. """ - env_en = self.env(context={}) - env_fr = self.env(context={'lang': 'fr_FR'}) - archf = '<form string="%s"><div>%s</div><div>%s</div></form>' terms_en = ('Knife', 'Fork', 'Spoon') terms_fr = ('Couteau', 'Fourchette', 'Cuiller') - view0 = self.env['ir.ui.view'].create({ - 'name': 'test', - 'model': 'res.partner', - 'arch': archf % terms_en, - }) - for src, value in list(pycompat.izip(terms_en, terms_fr)): - self.env['ir.translation'].create({ - 'type': 'model', - 'name': 'ir.ui.view,arch_db', - 'lang': 'fr_FR', - 'res_id': view0.id, - 'src': src, - 'value': value, - }) + view0 = self.create_view(archf, terms_en, fr_FR=terms_fr) + + env_en = self.env(context={}) + env_fr = self.env(context={'lang': 'fr_FR'}) # check translated field self.assertEqual(view0.with_env(env_en).arch_db, archf % terms_en) @@ -360,17 +366,29 @@ class TestXMLTranslation(TransactionCase): archf = '<form string="%s"><div>%s</div><div>%s</div></form>' terms_en = ('Knife', 'Fork', 'Spoon') terms_fr = (' Couteau', 'Fourchette ', ' Cuiller ') - view0 = self.env['ir.ui.view'].create({ - 'name': 'test', - 'model': 'res.partner', - 'arch': archf % terms_en, - }) - for src, value in list(pycompat.izip(terms_en, terms_fr)): - self.env['ir.translation'].create({ - 'type': 'model', - 'name': 'ir.ui.view,arch_db', - 'lang': 'fr_FR', - 'res_id': view0.id, - 'src': src, - 'value': value, - }) + self.create_view(archf, terms_en, fr_FR=terms_fr) + + def test_sync(self): + """ Check translations after minor change in source terms. """ + archf = '<form string="X">%s</form>' + terms_en = ('Bread and cheeze',) + terms_fr = ('Pain et fromage',) + terms_nl = ('Brood and kaas',) + view = self.create_view(archf, terms_en, fr_FR=terms_fr, nl_NL=terms_nl) + + env_en = self.env(context={}) + env_fr = self.env(context={'lang': 'fr_FR'}) + env_nl = self.env(context={'lang': 'nl_NL'}) + + self.assertEqual(view.with_env(env_en).arch_db, archf % terms_en) + self.assertEqual(view.with_env(env_fr).arch_db, archf % terms_fr) + self.assertEqual(view.with_env(env_nl).arch_db, archf % terms_nl) + + # modify source term in view (fixed type in 'cheeze') + terms_en = ('Bread and cheese',) + view.write({'arch_db': archf % terms_en}) + + # check whether translations have been synchronized + self.assertEqual(view.with_env(env_en).arch_db, archf % terms_en) + self.assertEqual(view.with_env(env_fr).arch_db, archf % terms_fr) + self.assertEqual(view.with_env(env_nl).arch_db, archf % terms_nl) |
