summaryrefslogtreecommitdiff
path: root/tests/urlpatterns_reverse/test_localeregexprovider.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/urlpatterns_reverse/test_localeregexprovider.py')
-rw-r--r--tests/urlpatterns_reverse/test_localeregexprovider.py55
1 files changed, 0 insertions, 55 deletions
diff --git a/tests/urlpatterns_reverse/test_localeregexprovider.py b/tests/urlpatterns_reverse/test_localeregexprovider.py
deleted file mode 100644
index 1fbba849c6..0000000000
--- a/tests/urlpatterns_reverse/test_localeregexprovider.py
+++ /dev/null
@@ -1,55 +0,0 @@
-import os
-from unittest import mock
-
-from django.core.exceptions import ImproperlyConfigured
-from django.test import SimpleTestCase, override_settings
-from django.urls import LocaleRegexProvider
-from django.urls.resolvers import LocaleRegexDescriptor
-from django.utils import translation
-
-here = os.path.dirname(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_nontranslated_regex_compiled_once(self):
- provider = LocaleRegexProvider('^foo/$')
- with translation.override('de'):
- de_compiled = provider.regex
- with translation.override('fr'):
- # compiled only once, regardless of language
- error = AssertionError('tried to compile non-translated url regex twice')
- with mock.patch('django.urls.resolvers.re.compile', side_effect=error):
- fr_compiled = provider.regex
- self.assertEqual(de_compiled.pattern, '^foo/$')
- self.assertEqual(fr_compiled.pattern, '^foo/$')
-
- 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
-
- def test_access_locale_regex_descriptor(self):
- self.assertIsInstance(LocaleRegexProvider.regex, LocaleRegexDescriptor)