summaryrefslogtreecommitdiff
path: root/tests/check_framework
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2020-01-08 08:05:43 +0100
committerGitHub <noreply@github.com>2020-01-08 08:05:43 +0100
commit53d8646f799de7f92ab9defe9dc56c6125448102 (patch)
tree22655c3fd2b78c4590f9d17c150687edb3534665 /tests/check_framework
parent979f61abd322507aafced9627702362e541ec34e (diff)
Fixed #31141 -- Relaxed system check of translation settings for sublanguages.
Regression in 4400d8296d268f5a8523cd02ddc33b12219b2535. Thanks Enrique Matías Sánchez for the report.
Diffstat (limited to 'tests/check_framework')
-rw-r--r--tests/check_framework/test_translation.py34
1 files changed, 29 insertions, 5 deletions
diff --git a/tests/check_framework/test_translation.py b/tests/check_framework/test_translation.py
index 4cd79d803f..8747a52cda 100644
--- a/tests/check_framework/test_translation.py
+++ b/tests/check_framework/test_translation.py
@@ -3,7 +3,7 @@ from django.core.checks.translation import (
check_language_settings_consistent, check_setting_language_code,
check_setting_languages, check_setting_languages_bidi,
)
-from django.test import SimpleTestCase
+from django.test import SimpleTestCase, override_settings
class TranslationCheckTests(SimpleTestCase):
@@ -75,12 +75,36 @@ class TranslationCheckTests(SimpleTestCase):
Error(msg % tag, id='translation.E003'),
])
+ @override_settings(USE_I18N=True, LANGUAGES=[('en', 'English')])
def test_inconsistent_language_settings(self):
msg = (
'You have provided a value for the LANGUAGE_CODE setting that is '
'not in the LANGUAGES setting.'
)
- with self.settings(LANGUAGE_CODE='fr', LANGUAGES=[('en', 'English')]):
- self.assertEqual(check_language_settings_consistent(None), [
- Error(msg, id='translation.E004'),
- ])
+ for tag in ['fr', 'fr-CA', 'fr-357']:
+ with self.subTest(tag), self.settings(LANGUAGE_CODE=tag):
+ self.assertEqual(check_language_settings_consistent(None), [
+ Error(msg, id='translation.E004'),
+ ])
+
+ @override_settings(
+ USE_I18N=True,
+ LANGUAGES=[
+ ('de', 'German'),
+ ('es', 'Spanish'),
+ ('fr', 'French'),
+ ('ca', 'Catalan'),
+ ],
+ )
+ def test_valid_variant_consistent_language_settings(self):
+ tests = [
+ # language + region.
+ 'fr-CA',
+ 'es-419',
+ 'de-at',
+ # language + region + variant.
+ 'ca-ES-valencia',
+ ]
+ for tag in tests:
+ with self.subTest(tag), self.settings(LANGUAGE_CODE=tag):
+ self.assertEqual(check_language_settings_consistent(None), [])