From 0cbfc844a392ae3fd47cc2cf28ba872f19f1d301 Mon Sep 17 00:00:00 2001 From: Anton Samarchyan Date: Fri, 27 Jan 2017 11:47:19 -0500 Subject: [PATCH] Improved test coverage and error messages for conf.urls.__init__. --- django/conf/urls/__init__.py | 7 ++++--- tests/urlpatterns_reverse/tests.py | 10 ++++++++++ 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')),