|
@@ -1673,14 +1673,13 @@ class MiscTests(SimpleTestCase):
|
|
|
g("xyz")
|
|
|
with self.assertRaises(LookupError):
|
|
|
g("xy-zz")
|
|
|
- msg = "'lang_code' exceeds the maximum accepted length"
|
|
|
with self.assertRaises(LookupError):
|
|
|
g("x" * LANGUAGE_CODE_MAX_LENGTH)
|
|
|
- with self.assertRaisesMessage(ValueError, msg):
|
|
|
+ with self.assertRaises(LookupError):
|
|
|
g("x" * (LANGUAGE_CODE_MAX_LENGTH + 1))
|
|
|
# 167 * 3 = 501 which is LANGUAGE_CODE_MAX_LENGTH + 1.
|
|
|
self.assertEqual(g("en-" * 167), "en")
|
|
|
- with self.assertRaisesMessage(ValueError, msg):
|
|
|
+ with self.assertRaises(LookupError):
|
|
|
g("en-" * 167, strict=True)
|
|
|
self.assertEqual(g("en-" * 30000), "en") # catastrophic test
|
|
|
|
|
@@ -1734,6 +1733,7 @@ class MiscTests(SimpleTestCase):
|
|
|
("/i-mingo/", "i-mingo"),
|
|
|
("/kl-tunumiit/", "kl-tunumiit"),
|
|
|
("/nan-hani-tw/", "nan-hani-tw"),
|
|
|
+ (f"/{'a' * 501}/", None),
|
|
|
]
|
|
|
for path, language in tests:
|
|
|
with self.subTest(path=path):
|
|
@@ -2012,6 +2012,11 @@ class CountrySpecificLanguageTests(SimpleTestCase):
|
|
|
lang = get_language_from_request(request)
|
|
|
self.assertEqual("bg", lang)
|
|
|
|
|
|
+ def test_get_language_from_request_code_too_long(self):
|
|
|
+ request = self.rf.get("/", headers={"accept-language": "a" * 501})
|
|
|
+ lang = get_language_from_request(request)
|
|
|
+ self.assertEqual("en-us", lang)
|
|
|
+
|
|
|
def test_get_language_from_request_null(self):
|
|
|
lang = trans_null.get_language_from_request(None)
|
|
|
self.assertEqual(lang, "en")
|