summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/i18n/tests.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/i18n/tests.py b/tests/i18n/tests.py
index d07c0d94a0..986b4bfa1e 100644
--- a/tests/i18n/tests.py
+++ b/tests/i18n/tests.py
@@ -983,6 +983,16 @@ class MiscTests(TestCase):
r.META = {'HTTP_ACCEPT_LANGUAGE': 'zh-tw,en'}
self.assertEqual(g(r), 'zh-tw')
+ def test_special_fallback_language(self):
+ """
+ Some languages may have special fallbacks that don't follow the simple
+ 'fr-ca' -> 'fr' logic (notably Chinese codes).
+ """
+ r = self.rf.get('/')
+ r.COOKIES = {}
+ r.META = {'HTTP_ACCEPT_LANGUAGE': 'zh-my,en'}
+ self.assertEqual(get_language_from_request(r), 'zh-hans')
+
def test_parse_language_cookie(self):
"""
Now test that we parse language preferences stored in a cookie correctly.
@@ -1156,6 +1166,16 @@ class TestLanguageInfo(TestCase):
def test_unknown_language_code_and_country_code(self):
six.assertRaisesRegex(self, KeyError, r"Unknown language code xx-xx and xx\.", get_language_info, 'xx-xx')
+ def test_fallback_language_code(self):
+ """
+ get_language_info return the first fallback language info if the lang_info
+ struct does not contain the 'name' key.
+ """
+ li = get_language_info('zh-my')
+ self.assertEqual(li['code'], 'zh-hans')
+ li = get_language_info('zh-cn')
+ self.assertEqual(li['code'], 'zh-cn')
+
class MultipleLocaleActivationTests(TestCase):
"""