summaryrefslogtreecommitdiff
path: root/tests/urlpatterns_reverse
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-08-17 13:45:07 -0400
committerTim Graham <timograham@gmail.com>2015-09-23 19:31:09 -0400
commit785cc71d5b3300e2702b0b2fc7316e58ca70b563 (patch)
treedc526b6b3df79c0da82694f0879713f33c0dee3c /tests/urlpatterns_reverse
parentd79122f40ba2016b1a943e2e1ba46984b2ef99ad (diff)
Refs #22384 -- Removed the ability to reverse URLs by dotted path per deprecation timeline.
Diffstat (limited to 'tests/urlpatterns_reverse')
-rw-r--r--tests/urlpatterns_reverse/erroneous_urls.py29
-rw-r--r--tests/urlpatterns_reverse/erroneous_views_module.py5
-rw-r--r--tests/urlpatterns_reverse/tests.py45
-rw-r--r--tests/urlpatterns_reverse/urls.py6
-rw-r--r--tests/urlpatterns_reverse/views.py4
5 files changed, 17 insertions, 72 deletions
diff --git a/tests/urlpatterns_reverse/erroneous_urls.py b/tests/urlpatterns_reverse/erroneous_urls.py
index 281d2bfa5b..4d75b49e8f 100644
--- a/tests/urlpatterns_reverse/erroneous_urls.py
+++ b/tests/urlpatterns_reverse/erroneous_urls.py
@@ -1,30 +1,7 @@
-import warnings
-
from django.conf.urls import url
-from django.utils.deprecation import RemovedInDjango110Warning
from . import views
-# Test deprecated behavior of passing strings as view to url().
-# Some of these can be removed in Django 1.10 as they aren't convertable to
-# callables.
-with warnings.catch_warnings():
- warnings.filterwarnings('ignore', category=RemovedInDjango110Warning)
- urlpatterns = [
- # View has erroneous import
- url(r'erroneous_inner/$', views.erroneous_view),
- # Module has erroneous import
- url(r'erroneous_outer/$', 'urlpatterns_reverse.erroneous_views_module.erroneous_view'),
- # Module is an unqualified string
- url(r'erroneous_unqualified/$', 'unqualified_view'),
- # View does not exist
- url(r'missing_inner/$', 'urlpatterns_reverse.views.missing_view'),
- # View is not a callable (string import; arbitrary Python object)
- url(r'uncallable-dotted/$', 'urlpatterns_reverse.views.uncallable'),
- # View is not a callable (explicit import; arbitrary Python object)
- url(r'uncallable-object/$', views.uncallable),
- # Module does not exist
- url(r'missing_outer/$', 'urlpatterns_reverse.missing_module.missing_view'),
- # Regex contains an error (refs #6170)
- url(r'(regex_error/$', views.empty_view),
- ]
+urlpatterns = [
+ url(r'(regex_error/$', views.empty_view),
+]
diff --git a/tests/urlpatterns_reverse/erroneous_views_module.py b/tests/urlpatterns_reverse/erroneous_views_module.py
deleted file mode 100644
index 3f7f5b2ac7..0000000000
--- a/tests/urlpatterns_reverse/erroneous_views_module.py
+++ /dev/null
@@ -1,5 +0,0 @@
-import non_existent # NOQA
-
-
-def erroneous_view(request):
- pass
diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py
index 292b981907..0fe61bedaa 100644
--- a/tests/urlpatterns_reverse/tests.py
+++ b/tests/urlpatterns_reverse/tests.py
@@ -26,9 +26,7 @@ from django.test import (
)
from django.test.utils import override_script_prefix
from django.utils import six
-from django.utils.deprecation import (
- RemovedInDjango20Warning, RemovedInDjango110Warning,
-)
+from django.utils.deprecation import RemovedInDjango20Warning
from . import middleware, urlconf_outer, views
from .views import empty_view
@@ -231,13 +229,6 @@ test_data = (
('nested-namedcapture', NoReverseMatch, [], {'outer': 'opt/', 'inner': 'opt'}),
('nested-namedcapture', NoReverseMatch, [], {'inner': 'opt'}),
- # Regression for #9038
- # These views are resolved by method name. Each method is deployed twice -
- # once with an explicit argument, and once using the default value on
- # the method. This is potentially ambiguous, as you have to pick the
- # correct view for the arguments provided.
- ('urlpatterns_reverse.views.absolute_kwargs_view', '/absolute_arg_view/', [], {}),
- ('urlpatterns_reverse.views.absolute_kwargs_view', '/absolute_arg_view/10/', [], {'arg1': 10}),
('non_path_include', '/includes/non_path_include/', [], {}),
# Tests for #13154
@@ -292,7 +283,6 @@ class NoURLPatternsTests(SimpleTestCase):
@override_settings(ROOT_URLCONF='urlpatterns_reverse.urls')
class URLPatternReverse(SimpleTestCase):
- @ignore_warnings(category=RemovedInDjango110Warning)
def test_urlpattern_reverse(self):
for name, expected, args, kwargs in test_data:
try:
@@ -544,11 +534,10 @@ class ReverseShortcutTests(SimpleTestCase):
redirect("urlpatterns_reverse.nonimported_module.view")
self.assertNotIn("urlpatterns_reverse.nonimported_module", sys.modules)
- @ignore_warnings(category=RemovedInDjango110Warning)
def test_reverse_by_path_nested(self):
- # Views that are added to urlpatterns using include() should be
- # reversible by dotted path.
- self.assertEqual(reverse('urlpatterns_reverse.views.nested_view'), '/includes/nested_path/')
+ # Views added to urlpatterns using include() should be reversible.
+ from .views import nested_view
+ self.assertEqual(reverse(nested_view), '/includes/nested_path/')
def test_redirect_view_object(self):
from .views import absolute_kwargs_view
@@ -982,24 +971,16 @@ class ResolverMatchTests(SimpleTestCase):
@override_settings(ROOT_URLCONF='urlpatterns_reverse.erroneous_urls')
class ErroneousViewTests(SimpleTestCase):
- def test_erroneous_resolve(self):
- self.assertRaises(ImportError, self.client.get, '/erroneous_inner/')
- self.assertRaises(ImportError, self.client.get, '/erroneous_outer/')
- self.assertRaises(ViewDoesNotExist, self.client.get, '/missing_inner/')
- self.assertRaises(ViewDoesNotExist, self.client.get, '/missing_outer/')
- self.assertRaises(ViewDoesNotExist, self.client.get, '/uncallable-dotted/')
- self.assertRaises(ViewDoesNotExist, self.client.get, '/uncallable-object/')
-
- # Regression test for #21157
- self.assertRaises(ImportError, self.client.get, '/erroneous_unqualified/')
+ def test_noncallable_view(self):
+ # View is not a callable (explicit import; arbitrary Python object)
+ with self.assertRaisesMessage(TypeError, 'view must be a callable'):
+ url(r'uncallable-object/$', views.uncallable)
- def test_erroneous_reverse(self):
- """
- Ensure that a useful exception is raised when a regex is invalid in the
- URLConf (#6170).
- """
- # The regex error will be hit before NoReverseMatch can be raised
- self.assertRaises(ImproperlyConfigured, reverse, 'whatever blah blah')
+ def test_invalid_regex(self):
+ # Regex contains an error (refs #6170)
+ msg = '(regex_error/$" is not a valid regular expression'
+ with self.assertRaisesMessage(ImproperlyConfigured, msg):
+ reverse(views.empty_view)
class ViewLoadingTests(SimpleTestCase):
diff --git a/tests/urlpatterns_reverse/urls.py b/tests/urlpatterns_reverse/urls.py
index 4672f1800d..0ede20da3b 100644
--- a/tests/urlpatterns_reverse/urls.py
+++ b/tests/urlpatterns_reverse/urls.py
@@ -2,7 +2,7 @@ from django.conf.urls import include, url
from .views import (
absolute_kwargs_view, defaults_view, empty_view, empty_view_partial,
- empty_view_wrapped, kwargs_view, nested_view,
+ empty_view_wrapped, nested_view,
)
other_patterns = [
@@ -67,10 +67,6 @@ urlpatterns = [
# This is non-reversible, but we shouldn't blow up when parsing it.
url(r'^(?:foo|bar)(\w+)/$', empty_view, name="disjunction"),
- # Regression views for #9038. See tests for more details
- url(r'arg_view/$', kwargs_view),
- url(r'arg_view/(?P<arg1>[0-9]+)/$', kwargs_view),
- url(r'absolute_arg_view/(?P<arg1>[0-9]+)/$', absolute_kwargs_view),
url(r'absolute_arg_view/$', absolute_kwargs_view),
# Tests for #13154. Mixed syntax to test both ways of defining URLs.
diff --git a/tests/urlpatterns_reverse/views.py b/tests/urlpatterns_reverse/views.py
index e13d28777e..6fd1c53a00 100644
--- a/tests/urlpatterns_reverse/views.py
+++ b/tests/urlpatterns_reverse/views.py
@@ -10,10 +10,6 @@ def empty_view(request, *args, **kwargs):
return HttpResponse('')
-def kwargs_view(request, arg1=1, arg2=2):
- return HttpResponse('')
-
-
def absolute_kwargs_view(request, arg1=1, arg2=2):
return HttpResponse('')