summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKrzysztof Urbaniak <urban@fail.pl>2016-02-29 09:24:19 +0100
committerTim Graham <timograham@gmail.com>2016-03-08 08:14:10 -0500
commit839a955d08fa0657622ed9b60fdd262658fa659f (patch)
treeeb671debf7695b40d27da97946ab0d9479d68566 /tests
parent4b129ac81f4fa38004950d0b307f81d1e9b44af8 (diff)
Fixed #25933 -- Allowed an unprefixed default language in i18n_patterns().
Diffstat (limited to 'tests')
-rw-r--r--tests/i18n/tests.py32
-rw-r--r--tests/i18n/urls_default_unprefixed.py9
2 files changed, 41 insertions, 0 deletions
diff --git a/tests/i18n/tests.py b/tests/i18n/tests.py
index 05c7828430..ba5127f2ea 100644
--- a/tests/i18n/tests.py
+++ b/tests/i18n/tests.py
@@ -13,6 +13,7 @@ from unittest import skipUnless
from django import forms
from django.conf import settings
+from django.conf.urls.i18n import i18n_patterns
from django.template import Context, Template, TemplateSyntaxError
from django.test import (
RequestFactory, SimpleTestCase, TestCase, override_settings,
@@ -1784,6 +1785,37 @@ class LocaleMiddlewareTests(TestCase):
@override_settings(
USE_I18N=True,
LANGUAGES=[
+ ('en', 'English'),
+ ('fr', 'French'),
+ ],
+ MIDDLEWARE_CLASSES=[
+ 'django.middleware.locale.LocaleMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ ],
+ ROOT_URLCONF='i18n.urls_default_unprefixed',
+ LANGUAGE_CODE='en',
+)
+class UnprefixedDefaultLanguageTests(SimpleTestCase):
+ def test_default_lang_without_prefix(self):
+ """
+ With i18n_patterns(..., prefix_default_language=False), the default
+ language (settings.LANGUAGE_CODE) should be accessible without a prefix.
+ """
+ response = self.client.get('/simple/')
+ self.assertEqual(response.content, b'Yes')
+
+ def test_other_lang_with_prefix(self):
+ response = self.client.get('/fr/simple/')
+ self.assertEqual(response.content, b'Oui')
+
+ def test_unexpected_kwarg_to_i18n_patterns(self):
+ with self.assertRaisesMessage(AssertionError, "Unexpected kwargs for i18n_patterns(): {'foo':"):
+ i18n_patterns(object(), foo='bar')
+
+
+@override_settings(
+ USE_I18N=True,
+ LANGUAGES=[
('bg', 'Bulgarian'),
('en-us', 'English'),
('pt-br', 'Portuguese (Brazil)'),
diff --git a/tests/i18n/urls_default_unprefixed.py b/tests/i18n/urls_default_unprefixed.py
new file mode 100644
index 0000000000..8cadbfaa73
--- /dev/null
+++ b/tests/i18n/urls_default_unprefixed.py
@@ -0,0 +1,9 @@
+from django.conf.urls import url
+from django.conf.urls.i18n import i18n_patterns
+from django.http import HttpResponse
+from django.utils.translation import ugettext_lazy as _
+
+urlpatterns = i18n_patterns(
+ url(r'^simple/$', lambda r: HttpResponse(_("Yes"))),
+ prefix_default_language=False,
+)