diff options
| author | Tim Graham <timograham@gmail.com> | 2015-08-17 13:45:07 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-09-23 19:31:09 -0400 |
| commit | 785cc71d5b3300e2702b0b2fc7316e58ca70b563 (patch) | |
| tree | dc526b6b3df79c0da82694f0879713f33c0dee3c /tests/urlpatterns_reverse | |
| parent | d79122f40ba2016b1a943e2e1ba46984b2ef99ad (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.py | 29 | ||||
| -rw-r--r-- | tests/urlpatterns_reverse/erroneous_views_module.py | 5 | ||||
| -rw-r--r-- | tests/urlpatterns_reverse/tests.py | 45 | ||||
| -rw-r--r-- | tests/urlpatterns_reverse/urls.py | 6 | ||||
| -rw-r--r-- | tests/urlpatterns_reverse/views.py | 4 |
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('') |
