34 lines
1.5 KiB
Python
34 lines
1.5 KiB
Python
from odoo.tests import TransactionCase
|
|
from odoo.tools import format_list, py_to_js_locale
|
|
|
|
|
|
class I18nTest(TransactionCase):
|
|
def test_format_list(self):
|
|
lang = self.env["res.lang"]
|
|
|
|
formatted_text = format_list(self.env, ["Mario", "Luigi"])
|
|
self.assertEqual(formatted_text, "Mario and Luigi", "Should default to English.")
|
|
|
|
formatted_text = format_list(self.env, ["To be", "Not to be"], "or")
|
|
self.assertEqual(formatted_text, "To be or Not to be", "Should take the style into account.")
|
|
|
|
lang._activate_lang("fr_FR")
|
|
|
|
formatted_text = format_list(lang.with_context(lang="fr_FR").env, ["Athos", "Porthos", "Aramis"])
|
|
self.assertEqual(formatted_text, "Athos, Porthos et Aramis", "Should use the language of the user.")
|
|
|
|
formatted_text = format_list(
|
|
lang.with_context(lang="en_US").env, ["Athos", "Porthos", "Aramis"], lang_code="fr_FR",
|
|
)
|
|
self.assertEqual(formatted_text, "Athos, Porthos et Aramis", "Should use the chosen language.")
|
|
|
|
def test_py_to_js_locale(self):
|
|
self.assertEqual(py_to_js_locale("tg"), "tg")
|
|
self.assertEqual(py_to_js_locale("kab"), "kab")
|
|
self.assertEqual(py_to_js_locale("fr_BE"), "fr-BE")
|
|
self.assertEqual(py_to_js_locale("es_419"), "es-419")
|
|
self.assertEqual(py_to_js_locale("sr@latin"), "sr-Latn")
|
|
self.assertEqual(py_to_js_locale("sr@Cyrl"), "sr-Cyrl")
|
|
self.assertEqual(py_to_js_locale("sr_RS@latin"), "sr-Latn-RS")
|
|
self.assertEqual(py_to_js_locale("fr-TG"), "fr-TG")
|