summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKrzysztof Urbaniak <urban@fail.pl>2016-10-28 11:36:53 +0200
committerTim Graham <timograham@gmail.com>2016-10-31 14:33:42 -0400
commita7dabe421684e6cb2f2abce659d60fa3bb1bb71b (patch)
tree6d73c86b0c7f8500120ccd6e6513829baebc4bc1 /tests
parent62c9894b347999bf44417ee6ab31e1a66628cf36 (diff)
[1.10.x] Fixed #27063 -- Prevented i18n_patterns() from using too much of the URL as the language.
Backport of a01d887a3ad9029ed198b6af974534fec46223f9 from master
Diffstat (limited to 'tests')
-rw-r--r--tests/i18n/tests.py7
-rw-r--r--tests/i18n/urls_default_unprefixed.py1
2 files changed, 8 insertions, 0 deletions
diff --git a/tests/i18n/tests.py b/tests/i18n/tests.py
index 219d2b4022..0f80e0ae91 100644
--- a/tests/i18n/tests.py
+++ b/tests/i18n/tests.py
@@ -1474,6 +1474,7 @@ class MiscTests(SimpleTestCase):
self.assertEqual(g('/de/'), 'de')
self.assertEqual(g('/de-at/'), 'de-at')
self.assertEqual(g('/de-ch/'), 'de')
+ self.assertIsNone(g('/de-simple-page/'))
def test_get_language_from_path_null(self):
from django.utils.translation.trans_null import get_language_from_path as g
@@ -1806,6 +1807,7 @@ class LocaleMiddlewareTests(TestCase):
USE_I18N=True,
LANGUAGES=[
('en', 'English'),
+ ('de', 'German'),
('fr', 'French'),
],
MIDDLEWARE=[
@@ -1836,6 +1838,11 @@ class UnprefixedDefaultLanguageTests(SimpleTestCase):
with self.assertRaisesMessage(AssertionError, "Unexpected kwargs for i18n_patterns(): {'foo':"):
i18n_patterns(object(), foo='bar')
+ def test_page_with_dash(self):
+ # A page starting with /de* shouldn't match the 'de' langauge code.
+ response = self.client.get('/de-simple-page/')
+ self.assertEqual(response.content, b'Yes')
+
@override_settings(
USE_I18N=True,
diff --git a/tests/i18n/urls_default_unprefixed.py b/tests/i18n/urls_default_unprefixed.py
index 8cadbfaa73..92ef8c6246 100644
--- a/tests/i18n/urls_default_unprefixed.py
+++ b/tests/i18n/urls_default_unprefixed.py
@@ -4,6 +4,7 @@ from django.http import HttpResponse
from django.utils.translation import ugettext_lazy as _
urlpatterns = i18n_patterns(
+ url(r'^(?P<arg>[\w-]+)-page', lambda request, **arg: HttpResponse(_("Yes"))),
url(r'^simple/$', lambda r: HttpResponse(_("Yes"))),
prefix_default_language=False,
)