From a9fd740d22bc4fed5fdb280c036618000ee13df1 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 12 Aug 2014 10:54:42 -0400 Subject: Fixed #23276 -- Deprecated passing views as strings to url(). --- tests/admin_scripts/urls.py | 3 +- tests/generic_views/urls.py | 3 +- tests/middleware/extra_urls.py | 8 +++-- tests/middleware/urls.py | 8 +++-- tests/model_permalink/urls.py | 4 ++- tests/template_tests/urls.py | 2 +- tests/test_client/urls.py | 5 ++-- tests/urlpatterns_reverse/erroneous_urls.py | 45 +++++++++++++++-------------- tests/urlpatterns_reverse/namespace_urls.py | 6 ++-- tests/urlpatterns_reverse/urls.py | 11 ++++--- tests/view_tests/generic_urls.py | 9 +++--- tests/view_tests/regression_21530_urls.py | 4 ++- tests/view_tests/urls.py | 4 +-- 13 files changed, 64 insertions(+), 48 deletions(-) (limited to 'tests') diff --git a/tests/admin_scripts/urls.py b/tests/admin_scripts/urls.py index ab17990322..b3f4eef15b 100644 --- a/tests/admin_scripts/urls.py +++ b/tests/admin_scripts/urls.py @@ -1,10 +1,11 @@ import os from django.conf.urls import url from django.utils._os import upath +from django.views.static import serve here = os.path.dirname(upath(__file__)) urlpatterns = [ - url(r'^custom_templates/(?P.*)$', 'django.views.static.serve', { + url(r'^custom_templates/(?P.*)$', serve, { 'document_root': os.path.join(here, 'custom_templates')}), ] diff --git a/tests/generic_views/urls.py b/tests/generic_views/urls.py index 84239159d1..a14eb6a9f4 100644 --- a/tests/generic_views/urls.py +++ b/tests/generic_views/urls.py @@ -1,4 +1,5 @@ from django.conf.urls import url +from django.contrib.auth import views as auth_views from django.views.decorators.cache import cache_page from django.views.generic import TemplateView @@ -257,5 +258,5 @@ urlpatterns = [ views.BookSigningDetail.as_view()), # Useful for testing redirects - url(r'^accounts/login/$', 'django.contrib.auth.views.login') + url(r'^accounts/login/$', auth_views.login) ] diff --git a/tests/middleware/extra_urls.py b/tests/middleware/extra_urls.py index 80f07c5074..20ded19c62 100644 --- a/tests/middleware/extra_urls.py +++ b/tests/middleware/extra_urls.py @@ -1,7 +1,9 @@ from django.conf.urls import url +from . import views + urlpatterns = [ - url(r'^customurlconf/noslash$', 'middleware.views.empty_view'), - url(r'^customurlconf/slash/$', 'middleware.views.empty_view'), - url(r'^customurlconf/needsquoting#/$', 'middleware.views.empty_view'), + url(r'^customurlconf/noslash$', views.empty_view), + url(r'^customurlconf/slash/$', views.empty_view), + url(r'^customurlconf/needsquoting#/$', views.empty_view), ] diff --git a/tests/middleware/urls.py b/tests/middleware/urls.py index 7d6689590c..8c6621d059 100644 --- a/tests/middleware/urls.py +++ b/tests/middleware/urls.py @@ -1,7 +1,9 @@ from django.conf.urls import url +from . import views + urlpatterns = [ - url(r'^noslash$', 'middleware.views.empty_view'), - url(r'^slash/$', 'middleware.views.empty_view'), - url(r'^needsquoting#/$', 'middleware.views.empty_view'), + url(r'^noslash$', views.empty_view), + url(r'^slash/$', views.empty_view), + url(r'^needsquoting#/$', views.empty_view), ] diff --git a/tests/model_permalink/urls.py b/tests/model_permalink/urls.py index 8ad8a16d05..be973aada5 100644 --- a/tests/model_permalink/urls.py +++ b/tests/model_permalink/urls.py @@ -1,5 +1,7 @@ from django.conf.urls import url +from . import views + urlpatterns = [ - url(r'^guitarists/(\w{1,50})/$', 'model_permalink.views.empty_view', name='guitarist_detail'), + url(r'^guitarists/(\w{1,50})/$', views.empty_view, name='guitarist_detail'), ] diff --git a/tests/template_tests/urls.py b/tests/template_tests/urls.py index f1c8632c06..2ddb6e232c 100644 --- a/tests/template_tests/urls.py +++ b/tests/template_tests/urls.py @@ -15,5 +15,5 @@ urlpatterns = [ # Unicode strings are permitted everywhere. url(r'^Юникод/(\w+)/$', views.client2, name="метка_оператора"), - url(r'^Юникод/(?P\S+)/$', 'template_tests.views.client2', name="метка_оператора_2"), + url(r'^Юникод/(?P\S+)/$', views.client2, name="метка_оператора_2"), ] diff --git a/tests/test_client/urls.py b/tests/test_client/urls.py index d56e151b01..4b34bfb113 100644 --- a/tests/test_client/urls.py +++ b/tests/test_client/urls.py @@ -1,4 +1,5 @@ from django.conf.urls import url +from django.contrib.auth import views as auth_views from django.views.generic import RedirectView from . import views @@ -32,6 +33,6 @@ urlpatterns = [ url(r'^mass_mail_sending_view/$', views.mass_mail_sending_view), url(r'^django_project_redirect/$', views.django_project_redirect), - url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}), - url(r'^accounts/logout/$', 'django.contrib.auth.views.logout'), + url(r'^accounts/login/$', auth_views.login, {'template_name': 'login.html'}), + url(r'^accounts/logout/$', auth_views.logout), ] diff --git a/tests/urlpatterns_reverse/erroneous_urls.py b/tests/urlpatterns_reverse/erroneous_urls.py index 2fec86f6cc..b4d6132966 100644 --- a/tests/urlpatterns_reverse/erroneous_urls.py +++ b/tests/urlpatterns_reverse/erroneous_urls.py @@ -1,26 +1,27 @@ +import warnings + from django.conf.urls import url from . import views -urlpatterns = [ - # View has erroneous import - url(r'erroneous_inner/$', views.erroneous_view), - # Module has erroneous import - # Remove in Django 2.0 along with erroneous_views_module as this is only - # an issue with string in urlpatterns - 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 - # Remove in Django 2.0 along with erroneous_views_module as this is only - # an issue with string in urlpatterns - url(r'missing_inner/$', 'urlpatterns_reverse.views.missing_view'), - # View is not callable - # Remove in Django 2.0 along with erroneous_views_module as this is only - # an issue with string in urlpatterns - url(r'uncallable/$', 'urlpatterns_reverse.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), -] +# Test deprecated behavior of passing strings as view to url(). +# Some of these can be removed in Django 2.0 as they aren't convertable to +# callabls. +with warnings.catch_warnings(record=True): + warnings.filterwarnings('ignore', module='django.conf.urls') + 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 callable + url(r'uncallable/$', 'urlpatterns_reverse.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), + ] diff --git a/tests/urlpatterns_reverse/namespace_urls.py b/tests/urlpatterns_reverse/namespace_urls.py index 166189d286..12cf85f7d3 100644 --- a/tests/urlpatterns_reverse/namespace_urls.py +++ b/tests/urlpatterns_reverse/namespace_urls.py @@ -10,9 +10,9 @@ class URLObject(object): def urls(self): return ([ - url(r'^inner/$', 'urlpatterns_reverse.views.empty_view', name='urlobject-view'), - url(r'^inner/(?P[0-9]+)/(?P[0-9]+)/$', 'urlpatterns_reverse.views.empty_view', name='urlobject-view'), - url(r'^inner/\+\\\$\*/$', 'urlpatterns_reverse.views.empty_view', name='urlobject-special-view'), + url(r'^inner/$', views.empty_view, name='urlobject-view'), + url(r'^inner/(?P[0-9]+)/(?P[0-9]+)/$', views.empty_view, name='urlobject-view'), + url(r'^inner/\+\\\$\*/$', views.empty_view, name='urlobject-special-view'), ], self.app_name, self.namespace) urls = property(urls) diff --git a/tests/urlpatterns_reverse/urls.py b/tests/urlpatterns_reverse/urls.py index bc30280da0..943f92e956 100644 --- a/tests/urlpatterns_reverse/urls.py +++ b/tests/urlpatterns_reverse/urls.py @@ -2,12 +2,15 @@ import warnings from django.conf.urls import patterns, url, include -from .views import empty_view, empty_view_partial, empty_view_wrapped, absolute_kwargs_view +from .views import ( + absolute_kwargs_view, defaults_view, empty_view, empty_view_partial, + empty_view_wrapped, nested_view, +) other_patterns = [ url(r'non_path_include/$', empty_view, name='non_path_include'), - url(r'nested_path/$', 'urlpatterns_reverse.views.nested_view'), + url(r'nested_path/$', nested_view), ] # test deprecated patterns() function. convert to list of urls() in Django 2.0 @@ -68,8 +71,8 @@ with warnings.catch_warnings(record=True): url(r'absolute_arg_view/$', absolute_kwargs_view), # Tests for #13154. Mixed syntax to test both ways of defining URLs. - url(r'defaults_view1/(?P[0-9]+)/', 'urlpatterns_reverse.views.defaults_view', {'arg2': 1}, name='defaults'), - (r'defaults_view2/(?P[0-9]+)/', 'urlpatterns_reverse.views.defaults_view', {'arg2': 2}, 'defaults'), + url(r'defaults_view1/(?P[0-9]+)/', defaults_view, {'arg2': 1}, name='defaults'), + (r'defaults_view2/(?P[0-9]+)/', defaults_view, {'arg2': 2}, 'defaults'), url('^includes/', include(other_patterns)), ) diff --git a/tests/view_tests/generic_urls.py b/tests/view_tests/generic_urls.py index 6d44468ce6..1150172ab9 100644 --- a/tests/view_tests/generic_urls.py +++ b/tests/view_tests/generic_urls.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url +from django.contrib.auth import views as auth_views from django.views.generic import RedirectView from .models import Article, DateArticle @@ -27,12 +28,12 @@ numeric_days_info_dict = dict(date_based_info_dict, day_format='%d') date_based_datefield_info_dict = dict(date_based_info_dict, queryset=DateArticle.objects.all()) urlpatterns = [ - url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}), - url(r'^accounts/logout/$', 'django.contrib.auth.views.logout'), + url(r'^accounts/login/$', auth_views.login, {'template_name': 'login.html'}), + url(r'^accounts/logout/$', auth_views.logout), # Special URLs for particular regression cases. - url('^中文/$', 'view_tests.views.redirect'), - url('^中文/target/$', 'view_tests.views.index_page'), + url('^中文/$', views.redirect), + url('^中文/target/$', views.index_page), ] # redirects, both temporary and permanent, with non-ASCII targets diff --git a/tests/view_tests/regression_21530_urls.py b/tests/view_tests/regression_21530_urls.py index 7a91ddebd7..706a08c888 100644 --- a/tests/view_tests/regression_21530_urls.py +++ b/tests/view_tests/regression_21530_urls.py @@ -1,5 +1,7 @@ from django.conf.urls import url +from . import views + urlpatterns = [ - url(r'^index/$', 'view_tests.views.index_page', name='index'), + url(r'^index/$', views.index_page, name='index'), ] diff --git a/tests/view_tests/urls.py b/tests/view_tests/urls.py index 202f8589eb..0dfc2d4446 100644 --- a/tests/view_tests/urls.py +++ b/tests/view_tests/urls.py @@ -3,7 +3,7 @@ from os import path from django.conf.urls import url, include from django.utils._os import upath -from django.views import defaults, i18n +from django.views import defaults, i18n, static from . import views @@ -71,7 +71,7 @@ urlpatterns = [ url(r'^jsi18n_template/$', views.jsi18n), # Static views - url(r'^site_media/(?P.*)$', 'django.views.static.serve', {'document_root': media_dir}), + url(r'^site_media/(?P.*)$', static.serve, {'document_root': media_dir}), ] urlpatterns += [ -- cgit v1.3