[ADD] test_translation_import: add new test
This test also fails before the module extraction commit as the code translations like the one for 'Ijkl' have no 'module' value during the reimport and are ignored by the following search closes odoo/odoo#32022 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
This commit is contained in:
@@ -21,8 +21,8 @@ msgstr "Ijkl in belgian french"
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model,name:test_translation_import.model_test_translation_import
|
||||
msgid "test.translation.import"
|
||||
msgstr "test.translation.import in belgian french"
|
||||
msgid "Test: Translation Import"
|
||||
msgstr "Test: Translation Import in belgian french"
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model.fields,help:test_translation_import.field_test_translation_import__name
|
||||
|
||||
@@ -29,6 +29,37 @@ msgstr ""
|
||||
msgid "1XBUO5PUYH2RYZSA1FTLRYS8SPCNU1UYXMEYMM25ASV7JC2KTJZQESZYRV9L8CGB"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: code:addons/test_translation_import/models.py:21
|
||||
#, python-format
|
||||
msgid "Accounting"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model.fields,field_description:test_translation_import.field_test_translation_import__create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model.fields,field_description:test_translation_import.field_test_translation_import__create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model.fields,field_description:test_translation_import.field_test_translation_import__display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model.fields,help:test_translation_import.field_test_translation_import__name
|
||||
msgid "Efgh"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model.fields,field_description:test_translation_import.field_test_translation_import__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: code:addons/test_translation_import/models.py:14
|
||||
#, python-format
|
||||
@@ -36,13 +67,29 @@ msgid "Ijkl"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model,name:test_translation_import.model_test_translation_import
|
||||
msgid "test.translation.import"
|
||||
#: code:addons/test_translation_import/models.py:19
|
||||
#, python-format
|
||||
msgid "Klingon"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model.fields,help:test_translation_import.field_test_translation_import__name
|
||||
msgid "Efgh"
|
||||
#: model:ir.model.fields,field_description:test_translation_import.field_test_translation_import____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model.fields,field_description:test_translation_import.field_test_translation_import__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model.fields,field_description:test_translation_import.field_test_translation_import__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.ui.menu,name:test_translation_import.menu_test_translation
|
||||
msgid "Test translation"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
@@ -51,19 +98,16 @@ msgstr ""
|
||||
msgid "Test translation import"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.ui.menu,name:test_translation_import.menu_test_translation
|
||||
msgid "Test translation"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: code:addons/base/models/arthur.py:42
|
||||
#: code:addons/base/models/arthur.py:43
|
||||
#, python-format
|
||||
msgid "Test translation with two code lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: code:addons/base/models/ford.py:42
|
||||
#, python-format
|
||||
msgid "Test translation with a code type but different line number in pot"
|
||||
msgstr ""
|
||||
|
||||
@@ -71,5 +115,11 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:test_translation_import.field_test_translation_import__other_name
|
||||
#: code:addons/base/models/marvin.py:42
|
||||
#: code:addons/base/models/trillian.py:42
|
||||
#, python-format
|
||||
msgid "Test translation with two code type and model"
|
||||
msgstr ""
|
||||
|
||||
#. module: test_translation_import
|
||||
#: model:ir.model,name:test_translation_import.model_test_translation_import
|
||||
msgid "Test: Translation Import"
|
||||
msgstr ""
|
||||
|
||||
@@ -5,7 +5,7 @@ import base64
|
||||
import io
|
||||
|
||||
import odoo
|
||||
from odoo.tests import common
|
||||
from odoo.tests import common, tagged
|
||||
from odoo.tools.misc import file_open, mute_logger
|
||||
from odoo.tools.translate import _
|
||||
|
||||
@@ -179,3 +179,49 @@ class TestTermCount(common.TransactionCase):
|
||||
|
||||
self.env.context = dict(self.env.context, lang="dot")
|
||||
self.assertEqual(_("Accounting"), "samva", "The code translation was not applied")
|
||||
|
||||
@tagged('post_install', '-at_install')
|
||||
class TestTranslationFlow(common.TransactionCase):
|
||||
|
||||
def test_export_import(self):
|
||||
""" Ensure export+import gives the same result as loading a language """
|
||||
# load language and generate missing terms to create missing empty terms
|
||||
with mute_logger('odoo.addons.base.models.ir_translation'):
|
||||
self.env["base.language.install"].create({'lang': 'fr_FR'}).lang_install()
|
||||
self.env["base.update.translations"].create({'lang': 'fr_FR'}).act_update()
|
||||
|
||||
translations = self.env["ir.translation"].search([
|
||||
('lang', '=', 'fr_FR'),
|
||||
('module', '=', 'test_translation_import')
|
||||
])
|
||||
|
||||
# minus 3 as the original fr.po contains 3 fake code translations (cf
|
||||
# test_no_duplicate test) which are not found by babel_extract_terms
|
||||
init_translation_count = len(translations) - 3
|
||||
|
||||
module = self.env.ref('base.module_test_translation_import')
|
||||
export = self.env["base.language.export"].create({
|
||||
'lang': 'fr_FR',
|
||||
'format': 'po',
|
||||
'modules': [(6, 0, [module.id])]
|
||||
})
|
||||
export.act_getfile()
|
||||
po_file = export.data
|
||||
self.assertIsNotNone(po_file)
|
||||
|
||||
translations.unlink()
|
||||
|
||||
import_fr = self.env["base.language.import"].create({
|
||||
'name': 'French',
|
||||
'code': 'fr_FR',
|
||||
'data': export.data,
|
||||
'filename': export.name,
|
||||
})
|
||||
with mute_logger('odoo.addons.base.models.res_lang'):
|
||||
import_fr.with_context(create_empty_translation=True).import_lang()
|
||||
|
||||
import_translation = self.env["ir.translation"].search([
|
||||
('lang', '=', 'fr_FR'),
|
||||
('module', '=', 'test_translation_import')
|
||||
])
|
||||
self.assertEqual(init_translation_count, len(import_translation))
|
||||
|
||||
Reference in New Issue
Block a user