summaryrefslogtreecommitdiff
path: root/tests/urlpatterns_reverse
diff options
context:
space:
mode:
authorCarl Meyer <carl@oddbird.net>2016-11-14 18:48:02 -0500
committerTim Graham <timograham@gmail.com>2016-11-14 18:51:02 -0500
commite454db3eeeb7be33875181955b543f9d6a3d329a (patch)
tree9aaefc3975f204f00b79bc47e7762341f60baacb /tests/urlpatterns_reverse
parent0a63ef3f61f42c5fd22f2d0b626e386fd426ebed (diff)
downloaddjango-e454db3eeeb7be33875181955b543f9d6a3d329a.tar.gz
Added tests for LocaleRegexProvider.
Diffstat (limited to 'tests/urlpatterns_reverse')
-rw-r--r--tests/urlpatterns_reverse/test_localeregexprovider.py41
-rw-r--r--tests/urlpatterns_reverse/translations/__init__.py0
-rw-r--r--tests/urlpatterns_reverse/translations/locale/__init__.py0
-rw-r--r--tests/urlpatterns_reverse/translations/locale/de/LC_MESSAGES/django.mobin0 -> 450 bytes
-rw-r--r--tests/urlpatterns_reverse/translations/locale/de/LC_MESSAGES/django.po20
-rw-r--r--tests/urlpatterns_reverse/translations/locale/de/__init__.py0
-rw-r--r--tests/urlpatterns_reverse/translations/locale/fr/LC_MESSAGES/django.mobin0 -> 426 bytes
-rw-r--r--tests/urlpatterns_reverse/translations/locale/fr/LC_MESSAGES/django.po20
-rw-r--r--tests/urlpatterns_reverse/translations/locale/fr/__init__.py0
9 files changed, 81 insertions, 0 deletions
diff --git a/tests/urlpatterns_reverse/test_localeregexprovider.py b/tests/urlpatterns_reverse/test_localeregexprovider.py
new file mode 100644
index 0000000000..9da8df656c
--- /dev/null
+++ b/tests/urlpatterns_reverse/test_localeregexprovider.py
@@ -0,0 +1,41 @@
+from __future__ import unicode_literals
+
+import os
+
+from django.core.exceptions import ImproperlyConfigured
+from django.test import SimpleTestCase, mock, override_settings
+from django.urls import LocaleRegexProvider
+from django.utils import translation
+from django.utils._os import upath
+
+here = os.path.dirname(upath(os.path.abspath(__file__)))
+
+
+@override_settings(LOCALE_PATHS=[os.path.join(here, 'translations', 'locale')])
+class LocaleRegexProviderTests(SimpleTestCase):
+ def setUp(self):
+ translation.trans_real._translations = {}
+
+ def tearDown(self):
+ translation.trans_real._translations = {}
+
+ def test_translated_regex_compiled_per_language(self):
+ provider = LocaleRegexProvider(translation.gettext_lazy('^foo/$'))
+ with translation.override('de'):
+ de_compiled = provider.regex
+ # compiled only once per language
+ error = AssertionError('tried to compile url regex twice for the same language')
+ with mock.patch('django.urls.resolvers.re.compile', side_effect=error):
+ de_compiled_2 = provider.regex
+ with translation.override('fr'):
+ fr_compiled = provider.regex
+ self.assertEqual(fr_compiled.pattern, '^foo-fr/$')
+ self.assertEqual(de_compiled.pattern, '^foo-de/$')
+ self.assertEqual(de_compiled, de_compiled_2)
+
+ def test_regex_compile_error(self):
+ """Regex errors are re-raised as ImproperlyConfigured."""
+ provider = LocaleRegexProvider('*')
+ msg = '"*" is not a valid regular expression: nothing to repeat'
+ with self.assertRaisesMessage(ImproperlyConfigured, msg):
+ provider.regex
diff --git a/tests/urlpatterns_reverse/translations/__init__.py b/tests/urlpatterns_reverse/translations/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/urlpatterns_reverse/translations/__init__.py
diff --git a/tests/urlpatterns_reverse/translations/locale/__init__.py b/tests/urlpatterns_reverse/translations/locale/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/urlpatterns_reverse/translations/locale/__init__.py
diff --git a/tests/urlpatterns_reverse/translations/locale/de/LC_MESSAGES/django.mo b/tests/urlpatterns_reverse/translations/locale/de/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..fc53234553
--- /dev/null
+++ b/tests/urlpatterns_reverse/translations/locale/de/LC_MESSAGES/django.mo
Binary files differ
diff --git a/tests/urlpatterns_reverse/translations/locale/de/LC_MESSAGES/django.po b/tests/urlpatterns_reverse/translations/locale/de/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..a4dde5ff1b
--- /dev/null
+++ b/tests/urlpatterns_reverse/translations/locale/de/LC_MESSAGES/django.po
@@ -0,0 +1,20 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: django tests\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-14 17:33+0100\n"
+"PO-Revision-Date: 2011-01-21 21:37-0300\n"
+"Last-Translator: Carl Meyer\n"
+"Language-Team: de <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+msgid "^foo/$"
+msgstr "^foo-de/$"
diff --git a/tests/urlpatterns_reverse/translations/locale/de/__init__.py b/tests/urlpatterns_reverse/translations/locale/de/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/urlpatterns_reverse/translations/locale/de/__init__.py
diff --git a/tests/urlpatterns_reverse/translations/locale/fr/LC_MESSAGES/django.mo b/tests/urlpatterns_reverse/translations/locale/fr/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..e755e5baea
--- /dev/null
+++ b/tests/urlpatterns_reverse/translations/locale/fr/LC_MESSAGES/django.mo
Binary files differ
diff --git a/tests/urlpatterns_reverse/translations/locale/fr/LC_MESSAGES/django.po b/tests/urlpatterns_reverse/translations/locale/fr/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..de1b96611c
--- /dev/null
+++ b/tests/urlpatterns_reverse/translations/locale/fr/LC_MESSAGES/django.po
@@ -0,0 +1,20 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: django tests\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-14 17:33+0100\n"
+"PO-Revision-Date: 2011-01-21 21:37-0300\n"
+"Last-Translator: Carl Meyer\n"
+"Language-Team: fr <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+msgid "^foo/$"
+msgstr "^foo-fr/$"
diff --git a/tests/urlpatterns_reverse/translations/locale/fr/__init__.py b/tests/urlpatterns_reverse/translations/locale/fr/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/urlpatterns_reverse/translations/locale/fr/__init__.py