summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Samarchyan <anton.samarchyan@savoirfairelinux.com>2017-01-27 11:47:19 -0500
committerTim Graham <timograham@gmail.com>2017-01-27 13:16:55 -0500
commit0cbfc844a392ae3fd47cc2cf28ba872f19f1d301 (patch)
tree0db4230f35754fa4e670f41eb5539a1ba93afe41
parente07e743e0c375b380748561d18b975c8211a4a01 (diff)
Improved test coverage and error messages for conf.urls.__init__.
-rw-r--r--django/conf/urls/__init__.py7
-rw-r--r--tests/urlpatterns_reverse/tests.py10
2 files changed, 14 insertions, 3 deletions
diff --git a/django/conf/urls/__init__.py b/django/conf/urls/__init__.py
index 16db0f2fea..47d6b310e2 100644
--- a/django/conf/urls/__init__.py
+++ b/django/conf/urls/__init__.py
@@ -22,12 +22,13 @@ def include(arg, namespace=None):
except ValueError:
if namespace:
raise ImproperlyConfigured(
- 'Cannot override the namespace for a dynamic module that provides a namespace'
+ 'Cannot override the namespace for a dynamic module that '
+ 'provides a namespace.'
)
raise ImproperlyConfigured(
- 'Passing a 3-tuple to django.conf.urls.include() is not supported. '
+ 'Passing a %d-tuple to django.conf.urls.include() is not supported. '
'Pass a 2-tuple containing the list of patterns and app_name, '
- 'and provide the namespace argument to include() instead.',
+ 'and provide the namespace argument to include() instead.' % len(arg)
)
else:
# No namespace hint - use manually provided namespace
diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py
index b2d7e1ad38..8d4cedc2e7 100644
--- a/tests/urlpatterns_reverse/tests.py
+++ b/tests/urlpatterns_reverse/tests.py
@@ -1058,11 +1058,21 @@ class IncludeTests(SimpleTestCase):
with self.assertRaisesMessage(ImproperlyConfigured, msg):
include(self.url_patterns, 'namespace')
+ def test_include_4_tuple(self):
+ msg = 'Passing a 4-tuple to django.conf.urls.include() is not supported.'
+ with self.assertRaisesMessage(ImproperlyConfigured, msg):
+ include((self.url_patterns, 'app_name', 'namespace', 'blah'))
+
def test_include_3_tuple(self):
msg = 'Passing a 3-tuple to django.conf.urls.include() is not supported.'
with self.assertRaisesMessage(ImproperlyConfigured, msg):
include((self.url_patterns, 'app_name', 'namespace'))
+ def test_include_3_tuple_namespace(self):
+ msg = 'Cannot override the namespace for a dynamic module that provides a namespace.'
+ with self.assertRaisesMessage(ImproperlyConfigured, msg):
+ include((self.url_patterns, 'app_name', 'namespace'), 'namespace')
+
def test_include_2_tuple(self):
self.assertEqual(
include((self.url_patterns, 'app_name')),