summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/admin_changelist/urls.py8
-rw-r--r--tests/admin_custom_urls/models.py6
-rw-r--r--tests/admin_custom_urls/urls.py8
-rw-r--r--tests/admin_docs/urls.py20
-rw-r--r--tests/admin_inlines/urls.py8
-rw-r--r--tests/admin_scripts/urls.py11
-rw-r--r--tests/admin_views/admin.py6
-rw-r--r--tests/admin_views/customadmin.py8
-rw-r--r--tests/admin_views/urls.py20
-rw-r--r--tests/admin_widgets/urls.py8
-rw-r--r--tests/conditional_processing/urls.py16
-rw-r--r--tests/contenttypes_tests/urls.py9
-rw-r--r--tests/context_processors/urls.py8
-rw-r--r--tests/file_storage/urls.py6
-rw-r--r--tests/file_uploads/urls.py28
-rw-r--r--tests/forms_tests/urls.py6
-rw-r--r--tests/generic_inline_admin/urls.py8
-rw-r--r--tests/generic_views/urls.py218
-rw-r--r--tests/handlers/urls.py6
-rw-r--r--tests/i18n/patterns/urls/default.py8
-rw-r--r--tests/i18n/patterns/urls/disabled.py2
-rw-r--r--tests/i18n/patterns/urls/included.py6
-rw-r--r--tests/i18n/patterns/urls/namespace.py6
-rw-r--r--tests/i18n/patterns/urls/path_unused.py5
-rw-r--r--tests/i18n/patterns/urls/wrong.py2
-rw-r--r--tests/i18n/patterns/urls/wrong_namespace.py2
-rw-r--r--tests/i18n/urls.py15
-rw-r--r--tests/logging_tests/urls.py6
-rw-r--r--tests/middleware/cond_get_urls.py8
-rw-r--r--tests/middleware/extra_urls.py12
-rw-r--r--tests/middleware/urls.py12
-rw-r--r--tests/middleware_exceptions/urls.py20
-rw-r--r--tests/model_permalink/urls.py6
-rw-r--r--tests/proxy_models/urls.py8
-rw-r--r--tests/resolve_url/urls.py10
-rw-r--r--tests/servers/urls.py6
-rw-r--r--tests/staticfiles_tests/urls/default.py9
-rw-r--r--tests/syndication_tests/urls.py36
-rw-r--r--tests/template_tests/alternate_urls.py8
-rw-r--r--tests/template_tests/urls.py15
-rw-r--r--tests/test_client/urls.py62
-rw-r--r--tests/test_client_regress/urls.py64
-rw-r--r--tests/test_utils/tests.py6
-rw-r--r--tests/test_utils/urls.py10
-rw-r--r--tests/timezones/urls.py8
-rw-r--r--tests/urlpatterns_reverse/erroneous_urls.py6
-rw-r--r--tests/urlpatterns_reverse/extra_urls.py6
-rw-r--r--tests/urlpatterns_reverse/included_named_urls.py8
-rw-r--r--tests/urlpatterns_reverse/included_named_urls2.py6
-rw-r--r--tests/urlpatterns_reverse/included_namespace_urls.py28
-rw-r--r--tests/urlpatterns_reverse/included_no_kwargs_urls.py6
-rw-r--r--tests/urlpatterns_reverse/included_urls.py6
-rw-r--r--tests/urlpatterns_reverse/included_urls2.py6
-rw-r--r--tests/urlpatterns_reverse/named_urls.py8
-rw-r--r--tests/urlpatterns_reverse/namespace_urls.py52
-rw-r--r--tests/urlpatterns_reverse/reverse_lazy_urls.py6
-rw-r--r--tests/urlpatterns_reverse/urlconf_inner.py6
-rw-r--r--tests/urlpatterns_reverse/urlconf_outer.py6
-rw-r--r--tests/urlpatterns_reverse/urls.py112
-rw-r--r--tests/urlpatterns_reverse/urls_error_handlers.py4
-rw-r--r--tests/urlpatterns_reverse/urls_error_handlers_callables.py4
-rw-r--r--tests/urlpatterns_reverse/urls_without_full_import.py6
-rw-r--r--tests/urls.py3
-rw-r--r--tests/view_tests/default_urls.py6
-rw-r--r--tests/view_tests/generic_urls.py54
-rw-r--r--tests/view_tests/regression_21530_urls.py6
-rw-r--r--tests/view_tests/urls.py55
-rw-r--r--tests/wsgi/urls.py9
68 files changed, 589 insertions, 580 deletions
diff --git a/tests/admin_changelist/urls.py b/tests/admin_changelist/urls.py
index a5d927e20b..b73893b2ae 100644
--- a/tests/admin_changelist/urls.py
+++ b/tests/admin_changelist/urls.py
@@ -1,8 +1,8 @@
-from django.conf.urls import patterns, include
+from django.conf.urls import include, url
from . import admin
-urlpatterns = patterns('',
- (r'^admin/', include(admin.site.urls)),
-)
+urlpatterns = [
+ url(r'^admin/', include(admin.site.urls)),
+]
diff --git a/tests/admin_custom_urls/models.py b/tests/admin_custom_urls/models.py
index 121e03b860..51725d4253 100644
--- a/tests/admin_custom_urls/models.py
+++ b/tests/admin_custom_urls/models.py
@@ -35,7 +35,7 @@ class ActionAdmin(admin.ModelAdmin):
def get_urls(self):
# Add the URL of our custom 'add_view' view to the front of the URLs
# list. Remove the existing one(s) first
- from django.conf.urls import patterns, url
+ from django.conf.urls import url
def wrap(view):
def wrapper(*args, **kwargs):
@@ -46,9 +46,9 @@ class ActionAdmin(admin.ModelAdmin):
view_name = '%s_%s_add' % info
- return patterns('',
+ return [
url(r'^!add/$', wrap(self.add_view), name=view_name),
- ) + self.remove_url(view_name)
+ ] + self.remove_url(view_name)
class Person(models.Model):
diff --git a/tests/admin_custom_urls/urls.py b/tests/admin_custom_urls/urls.py
index 5fe9ca89fb..1d14a09161 100644
--- a/tests/admin_custom_urls/urls.py
+++ b/tests/admin_custom_urls/urls.py
@@ -1,7 +1,7 @@
-from django.conf.urls import patterns, include
+from django.conf.urls import include, url
from django.contrib import admin
-urlpatterns = patterns('',
- (r'^admin/', include(admin.site.urls)),
-)
+urlpatterns = [
+ url(r'^admin/', include(admin.site.urls)),
+]
diff --git a/tests/admin_docs/urls.py b/tests/admin_docs/urls.py
index 48e7898d09..3fbfaff0c4 100644
--- a/tests/admin_docs/urls.py
+++ b/tests/admin_docs/urls.py
@@ -1,16 +1,16 @@
-from django.conf.urls import include, patterns, url
+from django.conf.urls import include, url
from django.contrib import admin
from . import views
-ns_patterns = patterns('',
+ns_patterns = [
url(r'^xview/func/$', views.xview_dec(views.xview), name='func'),
-)
+]
-urlpatterns = patterns('',
- (r'^admin/', include(admin.site.urls)),
- (r'^admindocs/', include('django.contrib.admindocs.urls')),
- (r'^', include(ns_patterns, namespace='test')),
- (r'^xview/func/$', views.xview_dec(views.xview)),
- (r'^xview/class/$', views.xview_dec(views.XViewClass.as_view())),
-)
+urlpatterns = [
+ url(r'^admin/', include(admin.site.urls)),
+ url(r'^admindocs/', include('django.contrib.admindocs.urls')),
+ url(r'^', include(ns_patterns, namespace='test')),
+ url(r'^xview/func/$', views.xview_dec(views.xview)),
+ url(r'^xview/class/$', views.xview_dec(views.XViewClass.as_view())),
+]
diff --git a/tests/admin_inlines/urls.py b/tests/admin_inlines/urls.py
index a5d927e20b..b73893b2ae 100644
--- a/tests/admin_inlines/urls.py
+++ b/tests/admin_inlines/urls.py
@@ -1,8 +1,8 @@
-from django.conf.urls import patterns, include
+from django.conf.urls import include, url
from . import admin
-urlpatterns = patterns('',
- (r'^admin/', include(admin.site.urls)),
-)
+urlpatterns = [
+ url(r'^admin/', include(admin.site.urls)),
+]
diff --git a/tests/admin_scripts/urls.py b/tests/admin_scripts/urls.py
index a45dc3e9a6..ab17990322 100644
--- a/tests/admin_scripts/urls.py
+++ b/tests/admin_scripts/urls.py
@@ -1,11 +1,10 @@
import os
-from django.conf.urls import patterns
+from django.conf.urls import url
from django.utils._os import upath
here = os.path.dirname(upath(__file__))
-urlpatterns = patterns('',
- (r'^custom_templates/(?P<path>.*)$', 'django.views.static.serve', {
- 'document_root': os.path.join(here, 'custom_templates'),
- }),
-)
+urlpatterns = [
+ url(r'^custom_templates/(?P<path>.*)$', 'django.views.static.serve', {
+ 'document_root': os.path.join(here, 'custom_templates')}),
+]
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index cd9ce2bf17..ba523265c2 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -11,7 +11,7 @@ from django.core.exceptions import ValidationError
from django.core.files.storage import FileSystemStorage
from django.core.mail import EmailMessage
from django.core.servers.basehttp import FileWrapper
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from django.forms.models import BaseModelFormSet
from django.http import HttpResponse, StreamingHttpResponse
from django.contrib.admin import BooleanFieldListFilter
@@ -617,11 +617,11 @@ class ReportAdmin(admin.ModelAdmin):
def get_urls(self):
# Corner case: Don't call parent implementation
- return patterns('',
+ return [
url(r'^extra/$',
self.extra,
name='cable_extra'),
- )
+ ]
class CustomTemplateBooleanFieldListFilter(BooleanFieldListFilter):
diff --git a/tests/admin_views/customadmin.py b/tests/admin_views/customadmin.py
index 560b4409c2..906fb871db 100644
--- a/tests/admin_views/customadmin.py
+++ b/tests/admin_views/customadmin.py
@@ -3,7 +3,7 @@ A second, custom AdminSite -- see tests.CustomAdminSiteTests.
"""
from __future__ import unicode_literals
-from django.conf.urls import patterns
+from django.conf.urls import url
from django.contrib import admin
from django.http import HttpResponse
from django.contrib.auth.models import User
@@ -26,9 +26,9 @@ class Admin2(admin.AdminSite):
return super(Admin2, self).index(request, {'foo': '*bar*'})
def get_urls(self):
- return patterns('',
- (r'^my_view/$', self.admin_view(self.my_view)),
- ) + super(Admin2, self).get_urls()
+ return [
+ url(r'^my_view/$', self.admin_view(self.my_view)),
+ ] + super(Admin2, self).get_urls()
def my_view(self, request):
return HttpResponse("Django is a magical pony!")
diff --git a/tests/admin_views/urls.py b/tests/admin_views/urls.py
index d934173234..c0c59d34fc 100644
--- a/tests/admin_views/urls.py
+++ b/tests/admin_views/urls.py
@@ -1,14 +1,14 @@
-from django.conf.urls import patterns, include
+from django.conf.urls import include, url
from . import views, customadmin, admin
-urlpatterns = patterns('',
- (r'^test_admin/admin/doc/', include('django.contrib.admindocs.urls')),
- (r'^test_admin/admin/secure-view/$', views.secure_view),
- (r'^test_admin/admin/', include(admin.site.urls)),
- (r'^test_admin/admin2/', include(customadmin.site.urls)),
- (r'^test_admin/admin3/', include(admin.site.urls), dict(form_url='pony')),
- (r'^test_admin/admin4/', include(customadmin.simple_site.urls)),
- (r'^test_admin/admin5/', include(admin.site2.urls)),
-)
+urlpatterns = [
+ url(r'^test_admin/admin/doc/', include('django.contrib.admindocs.urls')),
+ url(r'^test_admin/admin/secure-view/$', views.secure_view),
+ url(r'^test_admin/admin/', include(admin.site.urls)),
+ url(r'^test_admin/admin2/', include(customadmin.site.urls)),
+ url(r'^test_admin/admin3/', include(admin.site.urls), dict(form_url='pony')),
+ url(r'^test_admin/admin4/', include(customadmin.simple_site.urls)),
+ url(r'^test_admin/admin5/', include(admin.site2.urls)),
+]
diff --git a/tests/admin_widgets/urls.py b/tests/admin_widgets/urls.py
index 94c841765f..3b3e9b1488 100644
--- a/tests/admin_widgets/urls.py
+++ b/tests/admin_widgets/urls.py
@@ -1,8 +1,8 @@
-from django.conf.urls import patterns, include
+from django.conf.urls import include, url
from . import widgetadmin
-urlpatterns = patterns('',
- (r'^', include(widgetadmin.site.urls)),
-)
+urlpatterns = [
+ url(r'^', include(widgetadmin.site.urls)),
+]
diff --git a/tests/conditional_processing/urls.py b/tests/conditional_processing/urls.py
index 1ed7b1264a..0ae4a6868b 100644
--- a/tests/conditional_processing/urls.py
+++ b/tests/conditional_processing/urls.py
@@ -1,12 +1,12 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
- ('^condition/$', views.index),
- ('^condition/last_modified/$', views.last_modified_view1),
- ('^condition/last_modified2/$', views.last_modified_view2),
- ('^condition/etag/$', views.etag_view1),
- ('^condition/etag2/$', views.etag_view2),
-)
+urlpatterns = [
+ url('^condition/$', views.index),
+ url('^condition/last_modified/$', views.last_modified_view1),
+ url('^condition/last_modified2/$', views.last_modified_view2),
+ url('^condition/etag/$', views.etag_view1),
+ url('^condition/etag2/$', views.etag_view2),
+]
diff --git a/tests/contenttypes_tests/urls.py b/tests/contenttypes_tests/urls.py
index 626b3ae8f7..bf038c93de 100644
--- a/tests/contenttypes_tests/urls.py
+++ b/tests/contenttypes_tests/urls.py
@@ -1,7 +1,8 @@
from __future__ import unicode_literals
-from django.conf.urls import patterns
+from django.conf.urls import url
+from django.contrib.contenttypes import views
-urlpatterns = patterns('',
- (r'^shortcut/(\d+)/(.*)/$', 'django.contrib.contenttypes.views.shortcut'),
-)
+urlpatterns = [
+ url(r'^shortcut/(\d+)/(.*)/$', views.shortcut),
+]
diff --git a/tests/context_processors/urls.py b/tests/context_processors/urls.py
index 1b9f47c6b6..a7c0d1b4b0 100644
--- a/tests/context_processors/urls.py
+++ b/tests/context_processors/urls.py
@@ -1,8 +1,8 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
- (r'^request_attrs/$', views.request_processor),
-)
+urlpatterns = [
+ url(r'^request_attrs/$', views.request_processor),
+]
diff --git a/tests/file_storage/urls.py b/tests/file_storage/urls.py
index aefd8549e1..7d50ef46b8 100644
--- a/tests/file_storage/urls.py
+++ b/tests/file_storage/urls.py
@@ -1,7 +1,7 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from django.http import HttpResponse
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^$', lambda req: HttpResponse('example view')),
-)
+]
diff --git a/tests/file_uploads/urls.py b/tests/file_uploads/urls.py
index a6f446bf55..ae20a2b79f 100644
--- a/tests/file_uploads/urls.py
+++ b/tests/file_uploads/urls.py
@@ -1,18 +1,18 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
- (r'^upload/$', views.file_upload_view),
- (r'^verify/$', views.file_upload_view_verify),
- (r'^unicode_name/$', views.file_upload_unicode_name),
- (r'^echo/$', views.file_upload_echo),
- (r'^echo_content_type_extra/$', views.file_upload_content_type_extra),
- (r'^echo_content/$', views.file_upload_echo_content),
- (r'^quota/$', views.file_upload_quota),
- (r'^quota/broken/$', views.file_upload_quota_broken),
- (r'^getlist_count/$', views.file_upload_getlist_count),
- (r'^upload_errors/$', views.file_upload_errors),
- (r'^filename_case/$', views.file_upload_filename_case_view),
-)
+urlpatterns = [
+ url(r'^upload/$', views.file_upload_view),
+ url(r'^verify/$', views.file_upload_view_verify),
+ url(r'^unicode_name/$', views.file_upload_unicode_name),
+ url(r'^echo/$', views.file_upload_echo),
+ url(r'^echo_content_type_extra/$', views.file_upload_content_type_extra),
+ url(r'^echo_content/$', views.file_upload_echo_content),
+ url(r'^quota/$', views.file_upload_quota),
+ url(r'^quota/broken/$', views.file_upload_quota_broken),
+ url(r'^getlist_count/$', views.file_upload_getlist_count),
+ url(r'^upload_errors/$', views.file_upload_errors),
+ url(r'^filename_case/$', views.file_upload_filename_case_view),
+]
diff --git a/tests/forms_tests/urls.py b/tests/forms_tests/urls.py
index 835e6507eb..bd5bc582a3 100644
--- a/tests/forms_tests/urls.py
+++ b/tests/forms_tests/urls.py
@@ -1,8 +1,8 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from .views import ArticleFormView
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^model_form/(?P<pk>\d+)/$', ArticleFormView.as_view(), name="article_form"),
-)
+]
diff --git a/tests/generic_inline_admin/urls.py b/tests/generic_inline_admin/urls.py
index 8d68d6c922..bbabfc21a4 100644
--- a/tests/generic_inline_admin/urls.py
+++ b/tests/generic_inline_admin/urls.py
@@ -1,7 +1,7 @@
-from django.conf.urls import patterns, include
+from django.conf.urls import include, url
from . import admin
-urlpatterns = patterns('',
- (r'^generic_inline_admin/admin/', include(admin.site.urls)),
-)
+urlpatterns = [
+ url(r'^generic_inline_admin/admin/', include(admin.site.urls)),
+]
diff --git a/tests/generic_views/urls.py b/tests/generic_views/urls.py
index 1ecc0ec898..41417c6c49 100644
--- a/tests/generic_views/urls.py
+++ b/tests/generic_views/urls.py
@@ -1,4 +1,4 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from django.views.decorators.cache import cache_page
from django.views.generic import TemplateView
@@ -6,26 +6,22 @@ from . import models
from . import views
-urlpatterns = patterns('',
- # base
- #(r'^about/login-required/$',
- # views.DecoratedAboutView()),
-
+urlpatterns = [
# TemplateView
- (r'^template/no_template/$',
+ url(r'^template/no_template/$',
TemplateView.as_view()),
- (r'^template/simple/(?P<foo>\w+)/$',
+ url(r'^template/simple/(?P<foo>\w+)/$',
TemplateView.as_view(template_name='generic_views/about.html')),
- (r'^template/custom/(?P<foo>\w+)/$',
+ url(r'^template/custom/(?P<foo>\w+)/$',
views.CustomTemplateView.as_view(template_name='generic_views/about.html')),
- (r'^template/content_type/$',
+ url(r'^template/content_type/$',
TemplateView.as_view(template_name='generic_views/robots.txt', content_type='text/plain')),
- (r'^template/cached/(?P<foo>\w+)/$',
+ url(r'^template/cached/(?P<foo>\w+)/$',
cache_page(2.0)(TemplateView.as_view(template_name='generic_views/about.html'))),
# DetailView
- (r'^detail/obj/$',
+ url(r'^detail/obj/$',
views.ObjectDetail.as_view()),
url(r'^detail/artist/(?P<pk>\d+)/$',
views.ArtistDetail.as_view(),
@@ -33,102 +29,102 @@ urlpatterns = patterns('',
url(r'^detail/author/(?P<pk>\d+)/$',
views.AuthorDetail.as_view(),
name="author_detail"),
- (r'^detail/author/bycustompk/(?P<foo>\d+)/$',
+ url(r'^detail/author/bycustompk/(?P<foo>\d+)/$',
views.AuthorDetail.as_view(pk_url_kwarg='foo')),
- (r'^detail/author/byslug/(?P<slug>[\w-]+)/$',
+ url(r'^detail/author/byslug/(?P<slug>[\w-]+)/$',
views.AuthorDetail.as_view()),
- (r'^detail/author/bycustomslug/(?P<foo>[\w-]+)/$',
+ url(r'^detail/author/bycustomslug/(?P<foo>[\w-]+)/$',
views.AuthorDetail.as_view(slug_url_kwarg='foo')),
- (r'^detail/author/(?P<pk>\d+)/template_name_suffix/$',
+ url(r'^detail/author/(?P<pk>\d+)/template_name_suffix/$',
views.AuthorDetail.as_view(template_name_suffix='_view')),
- (r'^detail/author/(?P<pk>\d+)/template_name/$',
+ url(r'^detail/author/(?P<pk>\d+)/template_name/$',
views.AuthorDetail.as_view(template_name='generic_views/about.html')),
- (r'^detail/author/(?P<pk>\d+)/context_object_name/$',
+ url(r'^detail/author/(?P<pk>\d+)/context_object_name/$',
views.AuthorDetail.as_view(context_object_name='thingy')),
- (r'^detail/author/(?P<pk>\d+)/dupe_context_object_name/$',
+ url(r'^detail/author/(?P<pk>\d+)/dupe_context_object_name/$',
views.AuthorDetail.as_view(context_object_name='object')),
- (r'^detail/page/(?P<pk>\d+)/field/$',
+ url(r'^detail/page/(?P<pk>\d+)/field/$',
views.PageDetail.as_view()),
- (r'^detail/author/invalid/url/$',
+ url(r'^detail/author/invalid/url/$',
views.AuthorDetail.as_view()),
- (r'^detail/author/invalid/qs/$',
+ url(r'^detail/author/invalid/qs/$',
views.AuthorDetail.as_view(queryset=None)),
- (r'^detail/nonmodel/1/$',
+ url(r'^detail/nonmodel/1/$',
views.NonModelDetail.as_view()),
- (r'^detail/doesnotexist/(?P<pk>\d+)/$',
+ url(r'^detail/doesnotexist/(?P<pk>\d+)/$',
views.ObjectDoesNotExistDetail.as_view()),
# FormView
- (r'^contact/$',
+ url(r'^contact/$',
views.ContactView.as_view()),
# Create/UpdateView
- (r'^edit/artists/create/$',
+ url(r'^edit/artists/create/$',
views.ArtistCreate.as_view()),
- (r'^edit/artists/(?P<pk>\d+)/update/$',
+ url(r'^edit/artists/(?P<pk>\d+)/update/$',
views.ArtistUpdate.as_view()),
- (r'^edit/authors/create/naive/$',
+ url(r'^edit/authors/create/naive/$',
views.NaiveAuthorCreate.as_view()),
- (r'^edit/authors/create/redirect/$',
+ url(r'^edit/authors/create/redirect/$',
views.NaiveAuthorCreate.as_view(success_url='/edit/authors/create/')),
- (r'^edit/authors/create/interpolate_redirect/$',
+ url(r'^edit/authors/create/interpolate_redirect/$',
views.NaiveAuthorCreate.as_view(success_url='/edit/author/%(id)d/update/')),
- (r'^edit/authors/create/restricted/$',
+ url(r'^edit/authors/create/restricted/$',
views.AuthorCreateRestricted.as_view()),
- (r'^edit/authors/create/$',
+ url(r'^edit/authors/create/$',
views.AuthorCreate.as_view()),
- (r'^edit/authors/create/special/$',
+ url(r'^edit/authors/create/special/$',
views.SpecializedAuthorCreate.as_view()),
- (r'^edit/author/(?P<pk>\d+)/update/naive/$',
+ url(r'^edit/author/(?P<pk>\d+)/update/naive/$',
views.NaiveAuthorUpdate.as_view()),
- (r'^edit/author/(?P<pk>\d+)/update/redirect/$',
+ url(r'^edit/author/(?P<pk>\d+)/update/redirect/$',
views.NaiveAuthorUpdate.as_view(success_url='/edit/authors/create/')),
- (r'^edit/author/(?P<pk>\d+)/update/interpolate_redirect/$',
+ url(r'^edit/author/(?P<pk>\d+)/update/interpolate_redirect/$',
views.NaiveAuthorUpdate.as_view(success_url='/edit/author/%(id)d/update/')),
- (r'^edit/author/(?P<pk>\d+)/update/$',
+ url(r'^edit/author/(?P<pk>\d+)/update/$',
views.AuthorUpdate.as_view()),
- (r'^edit/author/update/$',
+ url(r'^edit/author/update/$',
views.OneAuthorUpdate.as_view()),
- (r'^edit/author/(?P<pk>\d+)/update/special/$',
+ url(r'^edit/author/(?P<pk>\d+)/update/special/$',
views.SpecializedAuthorUpdate.as_view()),
- (r'^edit/author/(?P<pk>\d+)/delete/naive/$',
+ url(r'^edit/author/(?P<pk>\d+)/delete/naive/$',
views.NaiveAuthorDelete.as_view()),
- (r'^edit/author/(?P<pk>\d+)/delete/redirect/$',
+ url(r'^edit/author/(?P<pk>\d+)/delete/redirect/$',
views.NaiveAuthorDelete.as_view(success_url='/edit/authors/create/')),
- (r'^edit/author/(?P<pk>\d+)/delete/interpolate_redirect/$',
+ url(r'^edit/author/(?P<pk>\d+)/delete/interpolate_redirect/$',
views.NaiveAuthorDelete.as_view(success_url='/edit/authors/create/?deleted=%(id)s')),
- (r'^edit/author/(?P<pk>\d+)/delete/$',
+ url(r'^edit/author/(?P<pk>\d+)/delete/$',
views.AuthorDelete.as_view()),
- (r'^edit/author/(?P<pk>\d+)/delete/special/$',
+ url(r'^edit/author/(?P<pk>\d+)/delete/special/$',
views.SpecializedAuthorDelete.as_view()),
# ArchiveIndexView
- (r'^dates/books/$',
+ url(r'^dates/books/$',
views.BookArchive.as_view()),
- (r'^dates/books/context_object_name/$',
+ url(r'^dates/books/context_object_name/$',
views.BookArchive.as_view(context_object_name='thingies')),
- (r'^dates/books/allow_empty/$',
+ url(r'^dates/books/allow_empty/$',
views.BookArchive.as_view(allow_empty=True)),
- (r'^dates/books/template_name/$',
+ url(r'^dates/books/template_name/$',
views.BookArchive.as_view(template_name='generic_views/list.html')),
- (r'^dates/books/template_name_suffix/$',
+ url(r'^dates/books/template_name_suffix/$',
views.BookArchive.as_view(template_name_suffix='_detail')),
- (r'^dates/books/invalid/$',
+ url(r'^dates/books/invalid/$',
views.BookArchive.as_view(queryset=None)),
- (r'^dates/books/paginated/$',
+ url(r'^dates/books/paginated/$',
views.BookArchive.as_view(paginate_by=10)),
- (r'^dates/books/reverse/$',
+ url(r'^dates/books/reverse/$',
views.BookArchive.as_view(queryset=models.Book.objects.order_by('pubdate'))),
- (r'^dates/books/by_month/$',
+ url(r'^dates/books/by_month/$',
views.BookArchive.as_view(date_list_period='month')),
- (r'^dates/booksignings/$',
+ url(r'^dates/booksignings/$',
views.BookSigningArchive.as_view()),
# ListView
- (r'^list/dict/$',
+ url(r'^list/dict/$',
views.DictList.as_view()),
- (r'^list/dict/paginated/$',
+ url(r'^list/dict/paginated/$',
views.DictList.as_view(paginate_by=1)),
url(r'^list/artists/$',
views.ArtistList.as_view(),
@@ -136,130 +132,130 @@ urlpatterns = patterns('',
url(r'^list/authors/$',
views.AuthorList.as_view(),
name="authors_list"),
- (r'^list/authors/paginated/$',
+ url(r'^list/authors/paginated/$',
views.AuthorList.as_view(paginate_by=30)),
- (r'^list/authors/paginated/(?P<page>\d+)/$',
+ url(r'^list/authors/paginated/(?P<page>\d+)/$',
views.AuthorList.as_view(paginate_by=30)),
- (r'^list/authors/paginated-orphaned/$',
+ url(r'^list/authors/paginated-orphaned/$',
views.AuthorList.as_view(paginate_by=30, paginate_orphans=2)),
- (r'^list/authors/notempty/$',
+ url(r'^list/authors/notempty/$',
views.AuthorList.as_view(allow_empty=False)),
- (r'^list/authors/notempty/paginated/$',
+ url(r'^list/authors/notempty/paginated/$',
views.AuthorList.as_view(allow_empty=False, paginate_by=2)),
- (r'^list/authors/template_name/$',
+ url(r'^list/authors/template_name/$',
views.AuthorList.as_view(template_name='generic_views/list.html')),
- (r'^list/authors/template_name_suffix/$',
+ url(r'^list/authors/template_name_suffix/$',
views.AuthorList.as_view(template_name_suffix='_objects')),
- (r'^list/authors/context_object_name/$',
+ url(r'^list/authors/context_object_name/$',
views.AuthorList.as_view(context_object_name='author_list')),
- (r'^list/authors/dupe_context_object_name/$',
+ url(r'^list/authors/dupe_context_object_name/$',
views.AuthorList.as_view(context_object_name='object_list')),
- (r'^list/authors/invalid/$',
+ url(r'^list/authors/invalid/$',
views.AuthorList.as_view(queryset=None)),
- (r'^list/authors/paginated/custom_class/$',
+ url(r'^list/authors/paginated/custom_class/$',
views.AuthorList.as_view(paginate_by=5, paginator_class=views.CustomPaginator)),
- (r'^list/authors/paginated/custom_page_kwarg/$',
+ url(r'^list/authors/paginated/custom_page_kwarg/$',
views.AuthorList.as_view(paginate_by=30, page_kwarg='pagina')),
- (r'^list/authors/paginated/custom_constructor/$',
+ url(r'^list/authors/paginated/custom_constructor/$',
views.AuthorListCustomPaginator.as_view()),
# YearArchiveView
# Mixing keyword and positional captures below is intentional; the views
# ought to be able to accept either.
- (r'^dates/books/(?P<year>\d{4})/$',
+ url(r'^dates/books/(?P<year>\d{4})/$',
views.BookYearArchive.as_view()),
- (r'^dates/books/(?P<year>\d{4})/make_object_list/$',
+ url(r'^dates/books/(?P<year>\d{4})/make_object_list/$',
views.BookYearArchive.as_view(make_object_list=True)),
- (r'^dates/books/(?P<year>\d{4})/allow_empty/$',
+ url(r'^dates/books/(?P<year>\d{4})/allow_empty/$',
views.BookYearArchive.as_view(allow_empty=True)),
- (r'^dates/books/(?P<year>\d{4})/allow_future/$',
+ url(r'^dates/books/(?P<year>\d{4})/allow_future/$',
views.BookYearArchive.as_view(allow_future=True)),
- (r'^dates/books/(?P<year>\d{4})/paginated/$',
+ url(r'^dates/books/(?P<year>\d{4})/paginated/$',
views.BookYearArchive.as_view(make_object_list=True, paginate_by=30)),
- (r'^dates/books/no_year/$',
+ url(r'^dates/books/no_year/$',
views.BookYearArchive.as_view()),
- (r'^dates/books/(?P<year>\d{4})/reverse/$',
+ url(r'^dates/books/(?P<year>\d{4})/reverse/$',
views.BookYearArchive.as_view(queryset=models.Book.objects.order_by('pubdate'))),
- (r'^dates/booksignings/(?P<year>\d{4})/$',
+ url(r'^dates/booksignings/(?P<year>\d{4})/$',
views.BookSigningYearArchive.as_view()),
# MonthArchiveView
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/$',
views.BookMonthArchive.as_view()),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>\d{1,2})/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>\d{1,2})/$',
views.BookMonthArchive.as_view(month_format='%m')),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/allow_empty/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/allow_empty/$',
views.BookMonthArchive.as_view(allow_empty=True)),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/allow_future/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/allow_future/$',
views.BookMonthArchive.as_view(allow_future=True)),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/paginated/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/paginated/$',
views.BookMonthArchive.as_view(paginate_by=30)),
- (r'^dates/books/(?P<year>\d{4})/no_month/$',
+ url(r'^dates/books/(?P<year>\d{4})/no_month/$',
views.BookMonthArchive.as_view()),
- (r'^dates/booksignings/(?P<year>\d{4})/(?P<month>[a-z]{3})/$',
+ url(r'^dates/booksignings/(?P<year>\d{4})/(?P<month>[a-z]{3})/$',
views.BookSigningMonthArchive.as_view()),
# WeekArchiveView
- (r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/$',
+ url(r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/$',
views.BookWeekArchive.as_view()),
- (r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/allow_empty/$',
+ url(r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/allow_empty/$',
views.BookWeekArchive.as_view(allow_empty=True)),
- (r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/allow_future/$',
+ url(r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/allow_future/$',
views.BookWeekArchive.as_view(allow_future=True)),
- (r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/paginated/$',
+ url(r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/paginated/$',
views.BookWeekArchive.as_view(paginate_by=30)),
- (r'^dates/books/(?P<year>\d{4})/week/no_week/$',
+ url(r'^dates/books/(?P<year>\d{4})/week/no_week/$',
views.BookWeekArchive.as_view()),
- (r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/monday/$',
+ url(r'^dates/books/(?P<year>\d{4})/week/(?P<week>\d{1,2})/monday/$',
views.BookWeekArchive.as_view(week_format='%W')),
- (r'^dates/booksignings/(?P<year>\d{4})/week/(?P<week>\d{1,2})/$',
+ url(r'^dates/booksignings/(?P<year>\d{4})/week/(?P<week>\d{1,2})/$',
views.BookSigningWeekArchive.as_view()),
# DayArchiveView
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/$',
views.BookDayArchive.as_view()),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$',
views.BookDayArchive.as_view(month_format='%m')),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/allow_empty/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/allow_empty/$',
views.BookDayArchive.as_view(allow_empty=True)),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/allow_future/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/allow_future/$',
views.BookDayArchive.as_view(allow_future=True)),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/allow_empty_and_future/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/allow_empty_and_future/$',
views.BookDayArchive.as_view(allow_empty=True, allow_future=True)),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/paginated/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/paginated/$',
views.BookDayArchive.as_view(paginate_by=True)),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/no_day/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/no_day/$',
views.BookDayArchive.as_view()),
- (r'^dates/booksignings/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/$',
+ url(r'^dates/booksignings/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/$',
views.BookSigningDayArchive.as_view()),
# TodayArchiveView
- (r'^dates/books/today/$',
+ url(r'^dates/books/today/$',
views.BookTodayArchive.as_view()),
- (r'^dates/books/today/allow_empty/$',
+ url(r'^dates/books/today/allow_empty/$',
views.BookTodayArchive.as_view(allow_empty=True)),
- (r'^dates/booksignings/today/$',
+ url(r'^dates/booksignings/today/$',
views.BookSigningTodayArchive.as_view()),
# DateDetailView
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/(?P<pk>\d+)/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/(?P<pk>\d+)/$',
views.BookDetail.as_view()),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/(?P<pk>\d+)/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/(?P<pk>\d+)/$',
views.BookDetail.as_view(month_format='%m')),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/(?P<pk>\d+)/allow_future/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/(?P<pk>\d+)/allow_future/$',
views.BookDetail.as_view(allow_future=True)),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/nopk/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/nopk/$',
views.BookDetail.as_view()),
- (r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/byslug/(?P<slug>[\w-]+)/$',
+ url(r'^dates/books/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/byslug/(?P<slug>[\w-]+)/$',
views.BookDetail.as_view()),
- (r'^dates/books/get_object_custom_queryset/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/(?P<pk>\d+)/$',
+ url(r'^dates/books/get_object_custom_queryset/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/(?P<pk>\d+)/$',
views.BookDetailGetObjectCustomQueryset.as_view()),
- (r'^dates/booksignings/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/(?P<pk>\d+)/$',
+ url(r'^dates/booksignings/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\d{1,2})/(?P<pk>\d+)/$',
views.BookSigningDetail.as_view()),
# Useful for testing redirects
- (r'^accounts/login/$', 'django.contrib.auth.views.login')
-)
+ url(r'^accounts/login/$', 'django.contrib.auth.views.login')
+]
diff --git a/tests/handlers/urls.py b/tests/handlers/urls.py
index eaf764b00b..dd8895aa1a 100644
--- a/tests/handlers/urls.py
+++ b/tests/handlers/urls.py
@@ -1,13 +1,13 @@
from __future__ import unicode_literals
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^regular/$', views.regular),
url(r'^streaming/$', views.streaming),
url(r'^in_transaction/$', views.in_transaction),
url(r'^not_in_transaction/$', views.not_in_transaction),
url(r'^suspicious/$', views.suspicious),
-)
+]
diff --git a/tests/i18n/patterns/urls/default.py b/tests/i18n/patterns/urls/default.py
index ff52e26227..416c4e854f 100644
--- a/tests/i18n/patterns/urls/default.py
+++ b/tests/i18n/patterns/urls/default.py
@@ -1,4 +1,4 @@
-from django.conf.urls import patterns, include, url
+from django.conf.urls import include, url
from django.conf.urls.i18n import i18n_patterns
from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView
@@ -6,14 +6,14 @@ from django.views.generic import TemplateView
view = TemplateView.as_view(template_name='dummy.html')
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^not-prefixed/$', view, name='not-prefixed'),
url(r'^not-prefixed-include/', include('i18n.patterns.urls.included')),
url(_(r'^translated/$'), view, name='no-prefix-translated'),
url(_(r'^translated/(?P<slug>[\w-]+)/$'), view, name='no-prefix-translated-slug'),
-)
+]
-urlpatterns += i18n_patterns('',
+urlpatterns += i18n_patterns(
url(r'^prefixed/$', view, name='prefixed'),
url(r'^prefixed\.xml$', view, name='prefixed_xml'),
url(_(r'^users/$'), view, name='users'),
diff --git a/tests/i18n/patterns/urls/disabled.py b/tests/i18n/patterns/urls/disabled.py
index 60fd222024..f5059dd852 100644
--- a/tests/i18n/patterns/urls/disabled.py
+++ b/tests/i18n/patterns/urls/disabled.py
@@ -4,6 +4,6 @@ from django.views.generic import TemplateView
view = TemplateView.as_view(template_name='dummy.html')
-urlpatterns = i18n_patterns('',
+urlpatterns = i18n_patterns(
url(r'^prefixed/$', view, name='prefixed'),
)
diff --git a/tests/i18n/patterns/urls/included.py b/tests/i18n/patterns/urls/included.py
index 3f3d1325dd..eb4631c087 100644
--- a/tests/i18n/patterns/urls/included.py
+++ b/tests/i18n/patterns/urls/included.py
@@ -1,9 +1,9 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from django.views.generic import TemplateView
view = TemplateView.as_view(template_name='dummy.html')
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^foo/$', view, name='not-prefixed-included-url'),
-)
+]
diff --git a/tests/i18n/patterns/urls/namespace.py b/tests/i18n/patterns/urls/namespace.py
index 3a2467b7b5..570a7572e6 100644
--- a/tests/i18n/patterns/urls/namespace.py
+++ b/tests/i18n/patterns/urls/namespace.py
@@ -1,11 +1,11 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView
view = TemplateView.as_view(template_name='dummy.html')
-urlpatterns = patterns('',
+urlpatterns = [
url(_(r'^register/$'), view, name='register'),
url(_(r'^register-without-slash$'), view, name='register-without-slash'),
-)
+]
diff --git a/tests/i18n/patterns/urls/path_unused.py b/tests/i18n/patterns/urls/path_unused.py
index 1254d16c4e..cd17527bf0 100644
--- a/tests/i18n/patterns/urls/path_unused.py
+++ b/tests/i18n/patterns/urls/path_unused.py
@@ -1,10 +1,9 @@
from django.conf.urls import url
-from django.conf.urls import patterns
from django.views.generic import TemplateView
view = TemplateView.as_view(template_name='dummy.html')
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^nl/foo/', view, name='not-translated'),
-)
+]
diff --git a/tests/i18n/patterns/urls/wrong.py b/tests/i18n/patterns/urls/wrong.py
index deed258909..fe948e0563 100644
--- a/tests/i18n/patterns/urls/wrong.py
+++ b/tests/i18n/patterns/urls/wrong.py
@@ -3,6 +3,6 @@ from django.conf.urls.i18n import i18n_patterns
from django.utils.translation import ugettext_lazy as _
-urlpatterns = i18n_patterns('',
+urlpatterns = i18n_patterns(
url(_(r'^account/'), include('i18n.patterns.urls.wrong_namespace', namespace='account')),
)
diff --git a/tests/i18n/patterns/urls/wrong_namespace.py b/tests/i18n/patterns/urls/wrong_namespace.py
index 2f7105d637..f3b55b69fe 100644
--- a/tests/i18n/patterns/urls/wrong_namespace.py
+++ b/tests/i18n/patterns/urls/wrong_namespace.py
@@ -6,6 +6,6 @@ from django.views.generic import TemplateView
view = TemplateView.as_view(template_name='dummy.html')
-urlpatterns = i18n_patterns('',
+urlpatterns = i18n_patterns(
url(_(r'^register/$'), view, name='register'),
)
diff --git a/tests/i18n/urls.py b/tests/i18n/urls.py
index c7d01897f5..d225bff453 100644
--- a/tests/i18n/urls.py
+++ b/tests/i18n/urls.py
@@ -1,10 +1,17 @@
from __future__ import unicode_literals
+import warnings
from django.conf.urls.i18n import i18n_patterns
from django.http import HttpResponse, StreamingHttpResponse
from django.utils.translation import ugettext_lazy as _
-urlpatterns = i18n_patterns('',
- (r'^simple/$', lambda r: HttpResponse()),
- (r'^streaming/$', lambda r: StreamingHttpResponse([_("Yes"), "/", _("No")])),
-)
+
+# test deprecated version of i18_patterns() function (with prefix). Remove it
+# and convert to list of urls() in Django 2.0
+with warnings.catch_warnings(record=True):
+ warnings.filterwarnings('ignore', module='django.conf.urls.18n')
+
+ urlpatterns = i18n_patterns('',
+ (r'^simple/$', lambda r: HttpResponse()),
+ (r'^streaming/$', lambda r: StreamingHttpResponse([_("Yes"), "/", _("No")])),
+ )
diff --git a/tests/logging_tests/urls.py b/tests/logging_tests/urls.py
index c738bd565c..50f86cdbb2 100644
--- a/tests/logging_tests/urls.py
+++ b/tests/logging_tests/urls.py
@@ -1,10 +1,10 @@
from __future__ import unicode_literals
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^suspicious/$', views.suspicious),
url(r'^suspicious_spec/$', views.suspicious_spec),
-)
+]
diff --git a/tests/middleware/cond_get_urls.py b/tests/middleware/cond_get_urls.py
index 1dadd0d31a..a100cfdafb 100644
--- a/tests/middleware/cond_get_urls.py
+++ b/tests/middleware/cond_get_urls.py
@@ -1,6 +1,6 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
from django.http import HttpResponse
-urlpatterns = patterns('',
- (r'^$', lambda request: HttpResponse('root is here')),
-)
+urlpatterns = [
+ url(r'^$', lambda request: HttpResponse('root is here')),
+]
diff --git a/tests/middleware/extra_urls.py b/tests/middleware/extra_urls.py
index c051296a74..3b1fb85604 100644
--- a/tests/middleware/extra_urls.py
+++ b/tests/middleware/extra_urls.py
@@ -1,7 +1,7 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
-urlpatterns = patterns('',
- (r'^customurlconf/noslash$', 'view'),
- (r'^customurlconf/slash/$', 'view'),
- (r'^customurlconf/needsquoting#/$', 'view'),
-)
+urlpatterns = [
+ url(r'^customurlconf/noslash$', 'view'),
+ url(r'^customurlconf/slash/$', 'view'),
+ url(r'^customurlconf/needsquoting#/$', 'view'),
+]
diff --git a/tests/middleware/urls.py b/tests/middleware/urls.py
index 217e3ae034..c429bb90fe 100644
--- a/tests/middleware/urls.py
+++ b/tests/middleware/urls.py
@@ -1,7 +1,7 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
-urlpatterns = patterns('',
- (r'^noslash$', 'view'),
- (r'^slash/$', 'view'),
- (r'^needsquoting#/$', 'view'),
-)
+urlpatterns = [
+ url(r'^noslash$', 'view'),
+ url(r'^slash/$', 'view'),
+ url(r'^needsquoting#/$', 'view'),
+]
diff --git a/tests/middleware_exceptions/urls.py b/tests/middleware_exceptions/urls.py
index fcef638553..6fde4fd942 100644
--- a/tests/middleware_exceptions/urls.py
+++ b/tests/middleware_exceptions/urls.py
@@ -1,14 +1,14 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
- (r'^middleware_exceptions/view/$', views.normal_view),
- (r'^middleware_exceptions/not_found/$', views.not_found),
- (r'^middleware_exceptions/error/$', views.server_error),
- (r'^middleware_exceptions/null_view/$', views.null_view),
- (r'^middleware_exceptions/permission_denied/$', views.permission_denied),
+urlpatterns = [
+ url(r'^middleware_exceptions/view/$', views.normal_view),
+ url(r'^middleware_exceptions/not_found/$', views.not_found),
+ url(r'^middleware_exceptions/error/$', views.server_error),
+ url(r'^middleware_exceptions/null_view/$', views.null_view),
+ url(r'^middleware_exceptions/permission_denied/$', views.permission_denied),
- (r'^middleware_exceptions/template_response/$', views.template_response),
- (r'^middleware_exceptions/template_response_error/$', views.template_response_error),
-)
+ url(r'^middleware_exceptions/template_response/$', views.template_response),
+ url(r'^middleware_exceptions/template_response_error/$', views.template_response_error),
+]
diff --git a/tests/model_permalink/urls.py b/tests/model_permalink/urls.py
index 409fc222c8..cbe50288b8 100644
--- a/tests/model_permalink/urls.py
+++ b/tests/model_permalink/urls.py
@@ -1,5 +1,5 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^guitarists/(\w{1,50})/$', 'unimplemented_view_placeholder', name='guitarist_detail'),
-)
+]
diff --git a/tests/proxy_models/urls.py b/tests/proxy_models/urls.py
index 644a34f556..6fcf1e055b 100644
--- a/tests/proxy_models/urls.py
+++ b/tests/proxy_models/urls.py
@@ -1,7 +1,7 @@
-from django.conf.urls import patterns, include
+from django.conf.urls import include, url
from django.contrib import admin
-urlpatterns = patterns('',
- (r'^admin/', include(admin.site.urls)),
-)
+urlpatterns = [
+ url(r'^admin/', include(admin.site.urls)),
+]
diff --git a/tests/resolve_url/urls.py b/tests/resolve_url/urls.py
index f03ac1a412..eb3720a503 100644
--- a/tests/resolve_url/urls.py
+++ b/tests/resolve_url/urls.py
@@ -1,6 +1,6 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
+from django.contrib.auth import views
-
-urlpatterns = patterns('',
- (r'^accounts/logout/$', 'django.contrib.auth.views.logout')
-)
+urlpatterns = [
+ url(r'^accounts/logout/$', views.logout),
+]
diff --git a/tests/servers/urls.py b/tests/servers/urls.py
index 03393c30ec..002e604105 100644
--- a/tests/servers/urls.py
+++ b/tests/servers/urls.py
@@ -1,11 +1,11 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^example_view/$', views.example_view),
url(r'^model_view/$', views.model_view),
url(r'^create_model_instance/$', views.create_model_instance),
url(r'^environ_view/$', views.environ_view),
-)
+]
diff --git a/tests/staticfiles_tests/urls/default.py b/tests/staticfiles_tests/urls/default.py
index e50a9e2907..5931ebc3be 100644
--- a/tests/staticfiles_tests/urls/default.py
+++ b/tests/staticfiles_tests/urls/default.py
@@ -1,5 +1,6 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
+from django.contrib.staticfiles import views
-urlpatterns = patterns('',
- url(r'^static/(?P<path>.*)$', 'django.contrib.staticfiles.views.serve'),
-)
+urlpatterns = [
+ url(r'^static/(?P<path>.*)$', views.serve),
+]
diff --git a/tests/syndication_tests/urls.py b/tests/syndication_tests/urls.py
index 1b5d77f2e1..3e50c098b0 100644
--- a/tests/syndication_tests/urls.py
+++ b/tests/syndication_tests/urls.py
@@ -1,24 +1,24 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
from . import feeds
-urlpatterns = patterns('django.contrib.syndication.views',
- (r'^syndication/complex/(?P<foo>.*)/$', feeds.ComplexFeed()),
- (r'^syndication/rss2/$', feeds.TestRss2Feed()),
- (r'^syndication/rss2/guid_ispermalink_true/$',
+urlpatterns = [
+ url(r'^syndication/complex/(?P<foo>.*)/$', feeds.ComplexFeed()),
+ url(r'^syndication/rss2/$', feeds.TestRss2Feed()),
+ url(r'^syndication/rss2/guid_ispermalink_true/$',
feeds.TestRss2FeedWithGuidIsPermaLinkTrue()),
- (r'^syndication/rss2/guid_ispermalink_false/$',
+ url(r'^syndication/rss2/guid_ispermalink_false/$',
feeds.TestRss2FeedWithGuidIsPermaLinkFalse()),
- (r'^syndication/rss091/$', feeds.TestRss091Feed()),
- (r'^syndication/no_pubdate/$', feeds.TestNoPubdateFeed()),
- (r'^syndication/atom/$', feeds.TestAtomFeed()),
- (r'^syndication/latest/$', feeds.TestLatestFeed()),
- (r'^syndication/custom/$', feeds.TestCustomFeed()),
- (r'^syndication/naive-dates/$', feeds.NaiveDatesFeed()),
- (r'^syndication/aware-dates/$', feeds.TZAwareDatesFeed()),
- (r'^syndication/feedurl/$', feeds.TestFeedUrlFeed()),
- (r'^syndication/articles/$', feeds.ArticlesFeed()),
- (r'^syndication/template/$', feeds.TemplateFeed()),
- (r'^syndication/template_context/$', feeds.TemplateContextFeed()),
-)
+ url(r'^syndication/rss091/$', feeds.TestRss091Feed()),
+ url(r'^syndication/no_pubdate/$', feeds.TestNoPubdateFeed()),
+ url(r'^syndication/atom/$', feeds.TestAtomFeed()),
+ url(r'^syndication/latest/$', feeds.TestLatestFeed()),
+ url(r'^syndication/custom/$', feeds.TestCustomFeed()),
+ url(r'^syndication/naive-dates/$', feeds.NaiveDatesFeed()),
+ url(r'^syndication/aware-dates/$', feeds.TZAwareDatesFeed()),
+ url(r'^syndication/feedurl/$', feeds.TestFeedUrlFeed()),
+ url(r'^syndication/articles/$', feeds.ArticlesFeed()),
+ url(r'^syndication/template/$', feeds.TemplateFeed()),
+ url(r'^syndication/template_context/$', feeds.TemplateContextFeed()),
+]
diff --git a/tests/template_tests/alternate_urls.py b/tests/template_tests/alternate_urls.py
index 3c6a4e62f9..9b05aa619b 100644
--- a/tests/template_tests/alternate_urls.py
+++ b/tests/template_tests/alternate_urls.py
@@ -1,12 +1,12 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
+urlpatterns = [
# View returning a template response
- (r'^template_response_view/$', views.template_response_view),
+ url(r'^template_response_view/$', views.template_response_view),
# A view that can be hard to find...
url(r'^snark/', views.snark, name='snark'),
-)
+]
diff --git a/tests/template_tests/urls.py b/tests/template_tests/urls.py
index f3720bbda7..2b7a313206 100644
--- a/tests/template_tests/urls.py
+++ b/tests/template_tests/urls.py
@@ -1,20 +1,19 @@
# coding: utf-8
from __future__ import unicode_literals
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
-
+urlpatterns = [
# Test urls for testing reverse lookups
- (r'^$', views.index),
- (r'^client/([\d,]+)/$', views.client),
- (r'^client/(?P<id>\d+)/(?P<action>[^/]+)/$', views.client_action),
- (r'^client/(?P<client_id>\d+)/(?P<action>[^/]+)/$', views.client_action),
+ url(r'^$', views.index),
+ url(r'^client/([\d,]+)/$', views.client),
+ url(r'^client/(?P<id>\d+)/(?P<action>[^/]+)/$', views.client_action),
+ url(r'^client/(?P<client_id>\d+)/(?P<action>[^/]+)/$', views.client_action),
url(r'^named-client/(\d+)/$', views.client2, name="named.client"),
# Unicode strings are permitted everywhere.
url(r'^Юникод/(\w+)/$', views.client2, name="метка_оператора"),
url(r'^Юникод/(?P<tag>\S+)/$', 'template_tests.views.client2', name="метка_оператора_2"),
-)
+]
diff --git a/tests/test_client/urls.py b/tests/test_client/urls.py
index 83f6fede35..554c934fe7 100644
--- a/tests/test_client/urls.py
+++ b/tests/test_client/urls.py
@@ -1,37 +1,37 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
from django.views.generic import RedirectView
from . import views
-urlpatterns = patterns('',
- (r'^get_view/$', views.get_view),
- (r'^post_view/$', views.post_view),
- (r'^header_view/$', views.view_with_header),
- (r'^raw_post_view/$', views.raw_post_view),
- (r'^redirect_view/$', views.redirect_view),
- (r'^secure_view/$', views.view_with_secure),
- (r'^permanent_redirect_view/$', RedirectView.as_view(url='/get_view/')),
- (r'^temporary_redirect_view/$', RedirectView.as_view(url='/get_view/', permanent=False)),
- (r'^http_redirect_view/$', RedirectView.as_view(url='/secure_view/')),
- (r'^https_redirect_view/$', RedirectView.as_view(url='https://testserver/secure_view/')),
- (r'^double_redirect_view/$', views.double_redirect_view),
- (r'^bad_view/$', views.bad_view),
- (r'^form_view/$', views.form_view),
- (r'^form_view_with_template/$', views.form_view_with_template),
- (r'^formset_view/$', views.formset_view),
- (r'^login_protected_view/$', views.login_protected_view),
- (r'^login_protected_method_view/$', views.login_protected_method_view),
- (r'^login_protected_view_custom_redirect/$', views.login_protected_view_changed_redirect),
- (r'^permission_protected_view/$', views.permission_protected_view),
- (r'^permission_protected_view_exception/$', views.permission_protected_view_exception),
- (r'^permission_protected_method_view/$', views.permission_protected_method_view),
- (r'^session_view/$', views.session_view),
- (r'^broken_view/$', views.broken_view),
- (r'^mail_sending_view/$', views.mail_sending_view),
- (r'^mass_mail_sending_view/$', views.mass_mail_sending_view),
- (r'^django_project_redirect/$', views.django_project_redirect),
+urlpatterns = [
+ url(r'^get_view/$', views.get_view),
+ url(r'^post_view/$', views.post_view),
+ url(r'^header_view/$', views.view_with_header),
+ url(r'^raw_post_view/$', views.raw_post_view),
+ url(r'^redirect_view/$', views.redirect_view),
+ url(r'^secure_view/$', views.view_with_secure),
+ url(r'^permanent_redirect_view/$', RedirectView.as_view(url='/get_view/')),
+ url(r'^temporary_redirect_view/$', RedirectView.as_view(url='/get_view/', permanent=False)),
+ url(r'^http_redirect_view/$', RedirectView.as_view(url='/secure_view/')),
+ url(r'^https_redirect_view/$', RedirectView.as_view(url='https://testserver/secure_view/')),
+ url(r'^double_redirect_view/$', views.double_redirect_view),
+ url(r'^bad_view/$', views.bad_view),
+ url(r'^form_view/$', views.form_view),
+ url(r'^form_view_with_template/$', views.form_view_with_template),
+ url(r'^formset_view/$', views.formset_view),
+ url(r'^login_protected_view/$', views.login_protected_view),
+ url(r'^login_protected_method_view/$', views.login_protected_method_view),
+ url(r'^login_protected_view_custom_redirect/$', views.login_protected_view_changed_redirect),
+ url(r'^permission_protected_view/$', views.permission_protected_view),
+ url(r'^permission_protected_view_exception/$', views.permission_protected_view_exception),
+ url(r'^permission_protected_method_view/$', views.permission_protected_method_view),
+ url(r'^session_view/$', views.session_view),
+ url(r'^broken_view/$', views.broken_view),
+ url(r'^mail_sending_view/$', views.mail_sending_view),
+ url(r'^mass_mail_sending_view/$', views.mass_mail_sending_view),
+ url(r'^django_project_redirect/$', views.django_project_redirect),
- (r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
- (r'^accounts/logout/$', 'django.contrib.auth.views.logout'),
-)
+ url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
+ url(r'^accounts/logout/$', 'django.contrib.auth.views.logout'),
+]
diff --git a/tests/test_client_regress/urls.py b/tests/test_client_regress/urls.py
index c789fed2e7..44bbebfcd8 100644
--- a/tests/test_client_regress/urls.py
+++ b/tests/test_client_regress/urls.py
@@ -1,40 +1,40 @@
-from django.conf.urls import patterns, url, include
+from django.conf.urls import url, include
from django.views.generic import RedirectView
from . import views
-urlpatterns = patterns('',
- (r'', include('test_client.urls')),
+urlpatterns = [
+ url(r'', include('test_client.urls')),
- (r'^no_template_view/$', views.no_template_view),
- (r'^staff_only/$', views.staff_only_view),
- (r'^get_view/$', views.get_view),
- (r'^request_data/$', views.request_data),
- (r'^request_data_extended/$', views.request_data, {'template': 'extended.html', 'data': 'bacon'}),
+ url(r'^no_template_view/$', views.no_template_view),
+ url(r'^staff_only/$', views.staff_only_view),
+ url(r'^get_view/$', views.get_view),
+ url(r'^request_data/$', views.request_data),
+ url(r'^request_data_extended/$', views.request_data, {'template': 'extended.html', 'data': 'bacon'}),
url(r'^arg_view/(?P<name>.+)/$', views.view_with_argument, name='arg_view'),
url(r'^nested_view/$', views.nested_view, name='nested_view'),
- (r'^login_protected_redirect_view/$', views.login_protected_redirect_view),
- (r'^redirects/$', RedirectView.as_view(url='/redirects/further/')),
- (r'^redirects/further/$', RedirectView.as_view(url='/redirects/further/more/')),
- (r'^redirects/further/more/$', RedirectView.as_view(url='/no_template_view/')),
- (r'^redirect_to_non_existent_view/$', RedirectView.as_view(url='/non_existent_view/')),
- (r'^redirect_to_non_existent_view2/$', RedirectView.as_view(url='/redirect_to_non_existent_view/')),
- (r'^redirect_to_self/$', RedirectView.as_view(url='/redirect_to_self/')),
- (r'^circular_redirect_1/$', RedirectView.as_view(url='/circular_redirect_2/')),
- (r'^circular_redirect_2/$', RedirectView.as_view(url='/circular_redirect_3/')),
- (r'^circular_redirect_3/$', RedirectView.as_view(url='/circular_redirect_1/')),
- (r'^redirect_other_host/$', RedirectView.as_view(url='https://otherserver:8443/no_template_view/')),
- (r'^set_session/$', views.set_session_view),
- (r'^check_session/$', views.check_session_view),
- (r'^request_methods/$', views.request_methods_view),
- (r'^check_unicode/$', views.return_unicode),
- (r'^check_binary/$', views.return_undecodable_binary),
- (r'^parse_unicode_json/$', views.return_json_file),
- (r'^check_headers/$', views.check_headers),
- (r'^check_headers_redirect/$', RedirectView.as_view(url='/check_headers/')),
- (r'^body/$', views.body),
- (r'^read_all/$', views.read_all),
- (r'^read_buffer/$', views.read_buffer),
- (r'^request_context_view/$', views.request_context_view),
-)
+ url(r'^login_protected_redirect_view/$', views.login_protected_redirect_view),
+ url(r'^redirects/$', RedirectView.as_view(url='/redirects/further/')),
+ url(r'^redirects/further/$', RedirectView.as_view(url='/redirects/further/more/')),
+ url(r'^redirects/further/more/$', RedirectView.as_view(url='/no_template_view/')),
+ url(r'^redirect_to_non_existent_view/$', RedirectView.as_view(url='/non_existent_view/')),
+ url(r'^redirect_to_non_existent_view2/$', RedirectView.as_view(url='/redirect_to_non_existent_view/')),
+ url(r'^redirect_to_self/$', RedirectView.as_view(url='/redirect_to_self/')),
+ url(r'^circular_redirect_1/$', RedirectView.as_view(url='/circular_redirect_2/')),
+ url(r'^circular_redirect_2/$', RedirectView.as_view(url='/circular_redirect_3/')),
+ url(r'^circular_redirect_3/$', RedirectView.as_view(url='/circular_redirect_1/')),
+ url(r'^redirect_other_host/$', RedirectView.as_view(url='https://otherserver:8443/no_template_view/')),
+ url(r'^set_session/$', views.set_session_view),
+ url(r'^check_session/$', views.check_session_view),
+ url(r'^request_methods/$', views.request_methods_view),
+ url(r'^check_unicode/$', views.return_unicode),
+ url(r'^check_binary/$', views.return_undecodable_binary),
+ url(r'^parse_unicode_json/$', views.return_json_file),
+ url(r'^check_headers/$', views.check_headers),
+ url(r'^check_headers_redirect/$', RedirectView.as_view(url='/check_headers/')),
+ url(r'^body/$', views.body),
+ url(r'^read_all/$', views.read_all),
+ url(r'^read_buffer/$', views.read_buffer),
+ url(r'^request_context_view/$', views.request_context_view),
+]
diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py
index d3c7aec1f3..f41c06e647 100644
--- a/tests/test_utils/tests.py
+++ b/tests/test_utils/tests.py
@@ -3,7 +3,7 @@ from __future__ import unicode_literals
import unittest
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from django.core.urlresolvers import reverse
from django.db import connection
from django.forms import EmailField, IntegerField
@@ -628,11 +628,11 @@ def fake_view(request):
class FirstUrls:
- urlpatterns = patterns('', url(r'first/$', fake_view, name='first'))
+ urlpatterns = [url(r'first/$', fake_view, name='first')]
class SecondUrls:
- urlpatterns = patterns('', url(r'second/$', fake_view, name='second'))
+ urlpatterns = [url(r'second/$', fake_view, name='second')]
class OverrideSettingsTests(TestCase):
diff --git a/tests/test_utils/urls.py b/tests/test_utils/urls.py
index c3f2ec4e4b..4aade3d572 100644
--- a/tests/test_utils/urls.py
+++ b/tests/test_utils/urls.py
@@ -1,9 +1,9 @@
-from django.conf.urls import patterns
+from django.conf.urls import url
from . import views
-urlpatterns = patterns('',
- (r'^test_utils/get_person/(\d+)/$', views.get_person),
- (r'^test_utils/no_template_used/$', views.no_template_used),
-)
+urlpatterns = [
+ url(r'^test_utils/get_person/(\d+)/$', views.get_person),
+ url(r'^test_utils/no_template_used/$', views.no_template_used),
+]
diff --git a/tests/timezones/urls.py b/tests/timezones/urls.py
index bb028d917a..1d1ec38f64 100644
--- a/tests/timezones/urls.py
+++ b/tests/timezones/urls.py
@@ -1,8 +1,8 @@
-from django.conf.urls import patterns, include
+from django.conf.urls import include, url
from django.contrib import admin
from . import admin as tz_admin # NOQA: register tz_admin
-urlpatterns = patterns('',
- (r'^admin/', include(admin.site.urls)),
-)
+urlpatterns = [
+ url(r'^admin/', include(admin.site.urls)),
+]
diff --git a/tests/urlpatterns_reverse/erroneous_urls.py b/tests/urlpatterns_reverse/erroneous_urls.py
index ac6b6f7cb3..213642008d 100644
--- a/tests/urlpatterns_reverse/erroneous_urls.py
+++ b/tests/urlpatterns_reverse/erroneous_urls.py
@@ -1,6 +1,6 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
-urlpatterns = patterns('',
+urlpatterns = [
# View has erroneous import
url(r'erroneous_inner/$', 'urlpatterns_reverse.views.erroneous_view'),
# Module has erroneous import
@@ -13,4 +13,4 @@ urlpatterns = patterns('',
url(r'missing_outer/$', 'urlpatterns_reverse.missing_module.missing_view'),
# Regex contains an error (refs #6170)
url(r'(regex_error/$', 'regressiontestes.urlpatterns_reverse.views.empty_view'),
-)
+]
diff --git a/tests/urlpatterns_reverse/extra_urls.py b/tests/urlpatterns_reverse/extra_urls.py
index 94e225fb46..4eb2f02130 100644
--- a/tests/urlpatterns_reverse/extra_urls.py
+++ b/tests/urlpatterns_reverse/extra_urls.py
@@ -2,14 +2,14 @@
Some extra URL patterns that are included at the top level.
"""
-from django.conf.urls import patterns, url, include
+from django.conf.urls import url, include
from .views import empty_view
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^e-places/(\d+)/$', empty_view, name='extra-places'),
url(r'^e-people/(?P<name>\w+)/$', empty_view, name="extra-people"),
url('', include('urlpatterns_reverse.included_urls2')),
url(r'^prefix/(?P<prefix>\w+)/', include('urlpatterns_reverse.included_urls2')),
-)
+]
diff --git a/tests/urlpatterns_reverse/included_named_urls.py b/tests/urlpatterns_reverse/included_named_urls.py
index 14d2525114..d8a6a16481 100644
--- a/tests/urlpatterns_reverse/included_named_urls.py
+++ b/tests/urlpatterns_reverse/included_named_urls.py
@@ -1,11 +1,11 @@
-from django.conf.urls import patterns, url, include
+from django.conf.urls import url, include
from .views import empty_view
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^$', empty_view, name="named-url3"),
url(r'^extra/(?P<extra>\w+)/$', empty_view, name="named-url4"),
url(r'^(?P<one>\d+)|(?P<two>\d+)/$', empty_view),
- (r'^included/', include('urlpatterns_reverse.included_named_urls2')),
-)
+ url(r'^included/', include('urlpatterns_reverse.included_named_urls2')),
+]
diff --git a/tests/urlpatterns_reverse/included_named_urls2.py b/tests/urlpatterns_reverse/included_named_urls2.py
index 897d9e7487..cb8c893b48 100644
--- a/tests/urlpatterns_reverse/included_named_urls2.py
+++ b/tests/urlpatterns_reverse/included_named_urls2.py
@@ -1,10 +1,10 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from .views import empty_view
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^$', empty_view, name="named-url5"),
url(r'^extra/(?P<extra>\w+)/$', empty_view, name="named-url6"),
url(r'^(?P<one>\d+)|(?P<two>\d+)/$', empty_view),
-)
+]
diff --git a/tests/urlpatterns_reverse/included_namespace_urls.py b/tests/urlpatterns_reverse/included_namespace_urls.py
index aaa1a03687..1b28552ade 100644
--- a/tests/urlpatterns_reverse/included_namespace_urls.py
+++ b/tests/urlpatterns_reverse/included_namespace_urls.py
@@ -1,3 +1,5 @@
+import warnings
+
from django.conf.urls import patterns, url, include
from .namespace_urls import URLObject
@@ -6,18 +8,22 @@ from .views import view_class_instance
testobj3 = URLObject('testapp', 'test-ns3')
-urlpatterns = patterns('urlpatterns_reverse.views',
- url(r'^normal/$', 'empty_view', name='inc-normal-view'),
- url(r'^normal/(?P<arg1>\d+)/(?P<arg2>\d+)/$', 'empty_view', name='inc-normal-view'),
+# test deprecated patterns() function. convert to list of urls() in Django 2.0
+with warnings.catch_warnings(record=True) as w:
+ warnings.filterwarnings('ignore', module='django.conf.urls')
+
+ urlpatterns = patterns('urlpatterns_reverse.views',
+ url(r'^normal/$', 'empty_view', name='inc-normal-view'),
+ url(r'^normal/(?P<arg1>\d+)/(?P<arg2>\d+)/$', 'empty_view', name='inc-normal-view'),
- url(r'^\+\\\$\*/$', 'empty_view', name='inc-special-view'),
+ url(r'^\+\\\$\*/$', 'empty_view', name='inc-special-view'),
- url(r'^mixed_args/(\d+)/(?P<arg2>\d+)/$', 'empty_view', name='inc-mixed-args'),
- url(r'^no_kwargs/(\d+)/(\d+)/$', 'empty_view', name='inc-no-kwargs'),
+ url(r'^mixed_args/(\d+)/(?P<arg2>\d+)/$', 'empty_view', name='inc-mixed-args'),
+ url(r'^no_kwargs/(\d+)/(\d+)/$', 'empty_view', name='inc-no-kwargs'),
- url(r'^view_class/(?P<arg1>\d+)/(?P<arg2>\d+)/$', view_class_instance, name='inc-view-class'),
+ url(r'^view_class/(?P<arg1>\d+)/(?P<arg2>\d+)/$', view_class_instance, name='inc-view-class'),
- (r'^test3/', include(testobj3.urls)),
- (r'^ns-included3/', include('urlpatterns_reverse.included_urls', namespace='inc-ns3')),
- (r'^ns-included4/', include('urlpatterns_reverse.namespace_urls', namespace='inc-ns4')),
-)
+ (r'^test3/', include(testobj3.urls)),
+ (r'^ns-included3/', include('urlpatterns_reverse.included_urls', namespace='inc-ns3')),
+ (r'^ns-included4/', include('urlpatterns_reverse.namespace_urls', namespace='inc-ns4')),
+ )
diff --git a/tests/urlpatterns_reverse/included_no_kwargs_urls.py b/tests/urlpatterns_reverse/included_no_kwargs_urls.py
index e408487f9b..bed77f7a18 100644
--- a/tests/urlpatterns_reverse/included_no_kwargs_urls.py
+++ b/tests/urlpatterns_reverse/included_no_kwargs_urls.py
@@ -1,8 +1,8 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from .views import empty_view
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^inner-no-kwargs/(\d+)/', empty_view, name="inner-no-kwargs")
-)
+]
diff --git a/tests/urlpatterns_reverse/included_urls.py b/tests/urlpatterns_reverse/included_urls.py
index af6b6882e0..bbc8537820 100644
--- a/tests/urlpatterns_reverse/included_urls.py
+++ b/tests/urlpatterns_reverse/included_urls.py
@@ -1,10 +1,10 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from .views import empty_view
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^$', empty_view, name="inner-nothing"),
url(r'^extra/(?P<extra>\w+)/$', empty_view, name="inner-extra"),
url(r'^(?P<one>\d+)|(?P<two>\d+)/$', empty_view, name="inner-disjunction"),
-)
+]
diff --git a/tests/urlpatterns_reverse/included_urls2.py b/tests/urlpatterns_reverse/included_urls2.py
index 9dcafc8535..ac8c770e7f 100644
--- a/tests/urlpatterns_reverse/included_urls2.py
+++ b/tests/urlpatterns_reverse/included_urls2.py
@@ -5,12 +5,12 @@ each name to resolve and Django must distinguish the possibilities based on the
argument list.
"""
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from .views import empty_view
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^part/(?P<value>\w+)/$', empty_view, name="part"),
url(r'^part2/(?:(?P<value>\w+)/)?$', empty_view, name="part2"),
-)
+]
diff --git a/tests/urlpatterns_reverse/named_urls.py b/tests/urlpatterns_reverse/named_urls.py
index d4d35bac33..a4de1e1b87 100644
--- a/tests/urlpatterns_reverse/named_urls.py
+++ b/tests/urlpatterns_reverse/named_urls.py
@@ -1,11 +1,11 @@
-from django.conf.urls import patterns, url, include
+from django.conf.urls import url, include
from .views import empty_view
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^$', empty_view, name="named-url1"),
url(r'^extra/(?P<extra>\w+)/$', empty_view, name="named-url2"),
url(r'^(?P<one>\d+)|(?P<two>\d+)/$', empty_view),
- (r'^included/', include('urlpatterns_reverse.included_named_urls')),
-)
+ url(r'^included/', include('urlpatterns_reverse.included_named_urls')),
+]
diff --git a/tests/urlpatterns_reverse/namespace_urls.py b/tests/urlpatterns_reverse/namespace_urls.py
index 014bc65990..cb4453fe57 100644
--- a/tests/urlpatterns_reverse/namespace_urls.py
+++ b/tests/urlpatterns_reverse/namespace_urls.py
@@ -1,6 +1,6 @@
-from django.conf.urls import patterns, url, include
+from django.conf.urls import url, include
-from .views import view_class_instance
+from . import views
class URLObject(object):
@@ -9,11 +9,11 @@ class URLObject(object):
self.namespace = namespace
def urls(self):
- return patterns('',
+ return ([
url(r'^inner/$', 'empty_view', name='urlobject-view'),
url(r'^inner/(?P<arg1>\d+)/(?P<arg2>\d+)/$', 'empty_view', name='urlobject-view'),
url(r'^inner/\+\\\$\*/$', 'empty_view', name='urlobject-special-view'),
- ), self.app_name, self.namespace
+ ], self.app_name, self.namespace)
urls = property(urls)
testobj1 = URLObject('testapp', 'test-ns1')
@@ -23,35 +23,35 @@ default_testobj = URLObject('testapp', 'testapp')
otherobj1 = URLObject('nodefault', 'other-ns1')
otherobj2 = URLObject('nodefault', 'other-ns2')
-urlpatterns = patterns('urlpatterns_reverse.views',
- url(r'^normal/$', 'empty_view', name='normal-view'),
- url(r'^normal/(?P<arg1>\d+)/(?P<arg2>\d+)/$', 'empty_view', name='normal-view'),
- url(r'^resolver_match/$', 'pass_resolver_match_view', name='test-resolver-match'),
+urlpatterns = [
+ url(r'^normal/$', views.empty_view, name='normal-view'),
+ url(r'^normal/(?P<arg1>\d+)/(?P<arg2>\d+)/$', views.empty_view, name='normal-view'),
+ url(r'^resolver_match/$', views.pass_resolver_match_view, name='test-resolver-match'),
- url(r'^\+\\\$\*/$', 'empty_view', name='special-view'),
+ url(r'^\+\\\$\*/$', views.empty_view, name='special-view'),
- url(r'^mixed_args/(\d+)/(?P<arg2>\d+)/$', 'empty_view', name='mixed-args'),
- url(r'^no_kwargs/(\d+)/(\d+)/$', 'empty_view', name='no-kwargs'),
+ url(r'^mixed_args/(\d+)/(?P<arg2>\d+)/$', views.empty_view, name='mixed-args'),
+ url(r'^no_kwargs/(\d+)/(\d+)/$', views.empty_view, name='no-kwargs'),
- url(r'^view_class/(?P<arg1>\d+)/(?P<arg2>\d+)/$', view_class_instance, name='view-class'),
+ url(r'^view_class/(?P<arg1>\d+)/(?P<arg2>\d+)/$', views.view_class_instance, name='view-class'),
- (r'^unnamed/normal/(?P<arg1>\d+)/(?P<arg2>\d+)/$', 'empty_view'),
- (r'^unnamed/view_class/(?P<arg1>\d+)/(?P<arg2>\d+)/$', view_class_instance),
+ url(r'^unnamed/normal/(?P<arg1>\d+)/(?P<arg2>\d+)/$', views.empty_view),
+ url(r'^unnamed/view_class/(?P<arg1>\d+)/(?P<arg2>\d+)/$', views.view_class_instance),
- (r'^test1/', include(testobj1.urls)),
- (r'^test2/', include(testobj2.urls)),
- (r'^default/', include(default_testobj.urls)),
+ url(r'^test1/', include(testobj1.urls)),
+ url(r'^test2/', include(testobj2.urls)),
+ url(r'^default/', include(default_testobj.urls)),
- (r'^other1/', include(otherobj1.urls)),
- (r'^other[246]/', include(otherobj2.urls)),
+ url(r'^other1/', include(otherobj1.urls)),
+ url(r'^other[246]/', include(otherobj2.urls)),
- (r'^ns-included[135]/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns1')),
- (r'^ns-included2/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns2')),
+ url(r'^ns-included[135]/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns1')),
+ url(r'^ns-included2/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns2')),
- (r'^included/', include('urlpatterns_reverse.included_namespace_urls')),
- (r'^inc(?P<outer>\d+)/', include('urlpatterns_reverse.included_urls', namespace='inc-ns5')),
+ url(r'^included/', include('urlpatterns_reverse.included_namespace_urls')),
+ url(r'^inc(?P<outer>\d+)/', include('urlpatterns_reverse.included_urls', namespace='inc-ns5')),
- (r'^ns-outer/(?P<outer>\d+)/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-outer')),
+ url(r'^ns-outer/(?P<outer>\d+)/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-outer')),
- (r'^\+\\\$\*/', include('urlpatterns_reverse.namespace_urls', namespace='special')),
-)
+ url(r'^\+\\\$\*/', include('urlpatterns_reverse.namespace_urls', namespace='special')),
+]
diff --git a/tests/urlpatterns_reverse/reverse_lazy_urls.py b/tests/urlpatterns_reverse/reverse_lazy_urls.py
index 0ef0a1f313..57358f6254 100644
--- a/tests/urlpatterns_reverse/reverse_lazy_urls.py
+++ b/tests/urlpatterns_reverse/reverse_lazy_urls.py
@@ -1,10 +1,10 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from .views import empty_view, LazyRedirectView, login_required_view
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^redirected_to/$', empty_view, name='named-lazy-url-redirected-to'),
url(r'^login/$', empty_view, name='some-login-page'),
url(r'^login_required_view/$', login_required_view),
url(r'^redirect/$', LazyRedirectView.as_view()),
-)
+]
diff --git a/tests/urlpatterns_reverse/urlconf_inner.py b/tests/urlpatterns_reverse/urlconf_inner.py
index 6d5cd27b35..d55c4dc650 100644
--- a/tests/urlpatterns_reverse/urlconf_inner.py
+++ b/tests/urlpatterns_reverse/urlconf_inner.py
@@ -1,4 +1,4 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from django.template import Template, Context
from django.http import HttpResponse
@@ -8,6 +8,6 @@ def inner_view(request):
'{% url "inner" as inner_url %}inner:{{ inner_url }}').render(Context())
return HttpResponse(content)
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^second_test/$', inner_view, name='inner'),
-)
+]
diff --git a/tests/urlpatterns_reverse/urlconf_outer.py b/tests/urlpatterns_reverse/urlconf_outer.py
index 20b9b09f98..36b6529efa 100644
--- a/tests/urlpatterns_reverse/urlconf_outer.py
+++ b/tests/urlpatterns_reverse/urlconf_outer.py
@@ -1,9 +1,9 @@
-from django.conf.urls import patterns, url, include
+from django.conf.urls import url, include
from . import urlconf_inner
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^test/me/$', urlconf_inner.inner_view, name='outer'),
url(r'^inner_urlconf/', include(urlconf_inner.__name__))
-)
+]
diff --git a/tests/urlpatterns_reverse/urls.py b/tests/urlpatterns_reverse/urls.py
index 923d0c7558..cafcb63888 100644
--- a/tests/urlpatterns_reverse/urls.py
+++ b/tests/urlpatterns_reverse/urls.py
@@ -1,64 +1,70 @@
+import warnings
+
from django.conf.urls import patterns, url, include
from .views import empty_view, absolute_kwargs_view
-other_patterns = patterns('',
+other_patterns = [
url(r'non_path_include/$', empty_view, name='non_path_include'),
-)
+]
+
+# test deprecated patterns() function. convert to list of urls() in Django 2.0
+with warnings.catch_warnings(record=True):
+ warnings.filterwarnings('ignore', module='django.conf.urls')
-urlpatterns = patterns('',
- url(r'^places/(\d+)/$', empty_view, name='places'),
- url(r'^places?/$', empty_view, name="places?"),
- url(r'^places+/$', empty_view, name="places+"),
- url(r'^places*/$', empty_view, name="places*"),
- url(r'^(?:places/)?$', empty_view, name="places2?"),
- url(r'^(?:places/)+$', empty_view, name="places2+"),
- url(r'^(?:places/)*$', empty_view, name="places2*"),
- url(r'^places/(\d+|[a-z_]+)/', empty_view, name="places3"),
- url(r'^places/(?P<id>\d+)/$', empty_view, name="places4"),
- url(r'^people/(?P<name>\w+)/$', empty_view, name="people"),
- url(r'^people/(?:name/)', empty_view, name="people2"),
- url(r'^people/(?:name/(\w+)/)?', empty_view, name="people2a"),
- url(r'^people/(?P<name>\w+)-(?P=name)/$', empty_view, name="people_backref"),
- url(r'^optional/(?P<name>.*)/(?:.+/)?', empty_view, name="optional"),
- url(r'^hardcoded/$', empty_view, name="hardcoded"),
- url(r'^hardcoded/doc\.pdf$', empty_view, name="hardcoded2"),
- url(r'^people/(?P<state>\w\w)/(?P<name>\w+)/$', empty_view, name="people3"),
- url(r'^people/(?P<state>\w\w)/(?P<name>\d)/$', empty_view, name="people4"),
- url(r'^people/((?P<state>\w\w)/test)?/(\w+)/$', empty_view, name="people6"),
- url(r'^character_set/[abcdef0-9]/$', empty_view, name="range"),
- url(r'^character_set/[\w]/$', empty_view, name="range2"),
- url(r'^price/\$(\d+)/$', empty_view, name="price"),
- url(r'^price/[$](\d+)/$', empty_view, name="price2"),
- url(r'^price/[\$](\d+)/$', empty_view, name="price3"),
- url(r'^product/(?P<product>\w+)\+\(\$(?P<price>\d+(\.\d+)?)\)/$', empty_view, name="product"),
- url(r'^headlines/(?P<year>\d+)\.(?P<month>\d+)\.(?P<day>\d+)/$', empty_view, name="headlines"),
- url(r'^windows_path/(?P<drive_name>[A-Z]):\\(?P<path>.+)/$', empty_view, name="windows"),
- url(r'^special_chars/(?P<chars>.+)/$', empty_view, name="special"),
- url(r'^(?P<name>.+)/\d+/$', empty_view, name="mixed"),
- url(r'^repeats/a{1,2}/$', empty_view, name="repeats"),
- url(r'^repeats/a{2,4}/$', empty_view, name="repeats2"),
- url(r'^repeats/a{2}/$', empty_view, name="repeats3"),
- url(r'^(?i)CaseInsensitive/(\w+)', empty_view, name="insensitive"),
- url(r'^test/1/?', empty_view, name="test"),
- url(r'^(?i)test/2/?$', empty_view, name="test2"),
- url(r'^outer/(?P<outer>\d+)/', include('urlpatterns_reverse.included_urls')),
- url(r'^outer-no-kwargs/(\d+)/', include('urlpatterns_reverse.included_no_kwargs_urls')),
- url('', include('urlpatterns_reverse.extra_urls')),
+ urlpatterns = patterns('',
+ url(r'^places/(\d+)/$', empty_view, name='places'),
+ url(r'^places?/$', empty_view, name="places?"),
+ url(r'^places+/$', empty_view, name="places+"),
+ url(r'^places*/$', empty_view, name="places*"),
+ url(r'^(?:places/)?$', empty_view, name="places2?"),
+ url(r'^(?:places/)+$', empty_view, name="places2+"),
+ url(r'^(?:places/)*$', empty_view, name="places2*"),
+ url(r'^places/(\d+|[a-z_]+)/', empty_view, name="places3"),
+ url(r'^places/(?P<id>\d+)/$', empty_view, name="places4"),
+ url(r'^people/(?P<name>\w+)/$', empty_view, name="people"),
+ url(r'^people/(?:name/)', empty_view, name="people2"),
+ url(r'^people/(?:name/(\w+)/)?', empty_view, name="people2a"),
+ url(r'^people/(?P<name>\w+)-(?P=name)/$', empty_view, name="people_backref"),
+ url(r'^optional/(?P<name>.*)/(?:.+/)?', empty_view, name="optional"),
+ url(r'^hardcoded/$', empty_view, name="hardcoded"),
+ url(r'^hardcoded/doc\.pdf$', empty_view, name="hardcoded2"),
+ url(r'^people/(?P<state>\w\w)/(?P<name>\w+)/$', empty_view, name="people3"),
+ url(r'^people/(?P<state>\w\w)/(?P<name>\d)/$', empty_view, name="people4"),
+ url(r'^people/((?P<state>\w\w)/test)?/(\w+)/$', empty_view, name="people6"),
+ url(r'^character_set/[abcdef0-9]/$', empty_view, name="range"),
+ url(r'^character_set/[\w]/$', empty_view, name="range2"),
+ url(r'^price/\$(\d+)/$', empty_view, name="price"),
+ url(r'^price/[$](\d+)/$', empty_view, name="price2"),
+ url(r'^price/[\$](\d+)/$', empty_view, name="price3"),
+ url(r'^product/(?P<product>\w+)\+\(\$(?P<price>\d+(\.\d+)?)\)/$', empty_view, name="product"),
+ url(r'^headlines/(?P<year>\d+)\.(?P<month>\d+)\.(?P<day>\d+)/$', empty_view, name="headlines"),
+ url(r'^windows_path/(?P<drive_name>[A-Z]):\\(?P<path>.+)/$', empty_view, name="windows"),
+ url(r'^special_chars/(?P<chars>.+)/$', empty_view, name="special"),
+ url(r'^(?P<name>.+)/\d+/$', empty_view, name="mixed"),
+ url(r'^repeats/a{1,2}/$', empty_view, name="repeats"),
+ url(r'^repeats/a{2,4}/$', empty_view, name="repeats2"),
+ url(r'^repeats/a{2}/$', empty_view, name="repeats3"),
+ url(r'^(?i)CaseInsensitive/(\w+)', empty_view, name="insensitive"),
+ url(r'^test/1/?', empty_view, name="test"),
+ url(r'^(?i)test/2/?$', empty_view, name="test2"),
+ url(r'^outer/(?P<outer>\d+)/', include('urlpatterns_reverse.included_urls')),
+ url(r'^outer-no-kwargs/(\d+)/', include('urlpatterns_reverse.included_no_kwargs_urls')),
+ url('', include('urlpatterns_reverse.extra_urls')),
- # This is non-reversible, but we shouldn't blow up when parsing it.
- url(r'^(?:foo|bar)(\w+)/$', empty_view, name="disjunction"),
+ # 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>\d+)/$', 'kwargs_view'),
- url(r'absolute_arg_view/(?P<arg1>\d+)/$', absolute_kwargs_view),
- url(r'absolute_arg_view/$', absolute_kwargs_view),
+ # Regression views for #9038. See tests for more details
+ url(r'arg_view/$', 'kwargs_view'),
+ url(r'arg_view/(?P<arg1>\d+)/$', 'kwargs_view'),
+ url(r'absolute_arg_view/(?P<arg1>\d+)/$', absolute_kwargs_view),
+ 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<arg1>\d+)/', 'defaults_view', {'arg2': 1}, name='defaults'),
- (r'defaults_view2/(?P<arg1>\d+)/', 'defaults_view', {'arg2': 2}, 'defaults'),
+ # Tests for #13154. Mixed syntax to test both ways of defining URLs.
+ url(r'defaults_view1/(?P<arg1>\d+)/', 'defaults_view', {'arg2': 1}, name='defaults'),
+ (r'defaults_view2/(?P<arg1>\d+)/', 'defaults_view', {'arg2': 2}, 'defaults'),
- url('^includes/', include(other_patterns)),
-)
+ url('^includes/', include(other_patterns)),
+ )
diff --git a/tests/urlpatterns_reverse/urls_error_handlers.py b/tests/urlpatterns_reverse/urls_error_handlers.py
index 7146fdf43c..aee6bb91ae 100644
--- a/tests/urlpatterns_reverse/urls_error_handlers.py
+++ b/tests/urlpatterns_reverse/urls_error_handlers.py
@@ -1,8 +1,6 @@
# Used by the ErrorHandlerResolutionTests test case.
-from django.conf.urls import patterns
-
-urlpatterns = patterns('')
+urlpatterns = []
handler400 = 'urlpatterns_reverse.views.empty_view'
handler404 = 'urlpatterns_reverse.views.empty_view'
diff --git a/tests/urlpatterns_reverse/urls_error_handlers_callables.py b/tests/urlpatterns_reverse/urls_error_handlers_callables.py
index 0900ec94ba..5fe8c728ff 100644
--- a/tests/urlpatterns_reverse/urls_error_handlers_callables.py
+++ b/tests/urlpatterns_reverse/urls_error_handlers_callables.py
@@ -1,11 +1,9 @@
# Used by the ErrorHandlerResolutionTests test case.
-from django.conf.urls import patterns
-
from .views import empty_view
-urlpatterns = patterns('')
+urlpatterns = []
handler400 = empty_view
handler404 = empty_view
diff --git a/tests/urlpatterns_reverse/urls_without_full_import.py b/tests/urlpatterns_reverse/urls_without_full_import.py
index c1dce5549c..5178a9cfe0 100644
--- a/tests/urlpatterns_reverse/urls_without_full_import.py
+++ b/tests/urlpatterns_reverse/urls_without_full_import.py
@@ -1,12 +1,12 @@
# A URLs file that doesn't use the default
# from django.conf.urls import *
# import pattern.
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from .views import empty_view, bad_view
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^test_view/$', empty_view, name="test_view"),
url(r'^bad_view/$', bad_view, name="bad_view"),
-)
+]
diff --git a/tests/urls.py b/tests/urls.py
index 34e3afcb83..bf9e5dc0fb 100644
--- a/tests/urls.py
+++ b/tests/urls.py
@@ -2,7 +2,6 @@
should be added within the test folders, and use TestCase.urls to set them.
This helps the tests remain isolated.
"""
-from django.conf.urls import patterns
-urlpatterns = patterns('')
+urlpatterns = []
diff --git a/tests/view_tests/default_urls.py b/tests/view_tests/default_urls.py
index 511689ccb1..1e202472f4 100644
--- a/tests/view_tests/default_urls.py
+++ b/tests/view_tests/default_urls.py
@@ -1,8 +1,8 @@
-from django.conf.urls import patterns, include, url
+from django.conf.urls import include, url
from django.contrib import admin
-urlpatterns = patterns('',
+urlpatterns = [
# This is the same as in the default project template
url(r'^admin/', include(admin.site.urls)),
-)
+]
diff --git a/tests/view_tests/generic_urls.py b/tests/view_tests/generic_urls.py
index 4d6a2219ec..6d44468ce6 100644
--- a/tests/view_tests/generic_urls.py
+++ b/tests/view_tests/generic_urls.py
@@ -1,11 +1,11 @@
# -*- coding:utf-8 -*-
from __future__ import unicode_literals
-from django.conf.urls import patterns, url
+from django.conf.urls import url
from django.views.generic import RedirectView
from .models import Article, DateArticle
-
+from . import views
date_based_info_dict = {
'queryset': Article.objects.all(),
@@ -26,38 +26,38 @@ 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 = patterns('',
- (r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
- (r'^accounts/logout/$', 'django.contrib.auth.views.logout'),
+urlpatterns = [
+ url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
+ url(r'^accounts/logout/$', 'django.contrib.auth.views.logout'),
# Special URLs for particular regression cases.
url('^中文/$', 'view_tests.views.redirect'),
url('^中文/target/$', 'view_tests.views.index_page'),
-)
+]
# redirects, both temporary and permanent, with non-ASCII targets
-urlpatterns += patterns('',
- ('^nonascii_redirect/$', RedirectView.as_view(
+urlpatterns += [
+ url('^nonascii_redirect/$', RedirectView.as_view(
url='/中文/target/', permanent=False)),
- ('^permanent_nonascii_redirect/$', RedirectView.as_view(
+ url('^permanent_nonascii_redirect/$', RedirectView.as_view(
url='/中文/target/', permanent=True)),
-)
-
-urlpatterns += patterns('view_tests.views',
- (r'^shortcuts/render_to_response/$', 'render_to_response_view'),
- (r'^shortcuts/render_to_response/request_context/$', 'render_to_response_view_with_request_context'),
- (r'^shortcuts/render_to_response/content_type/$', 'render_to_response_view_with_content_type'),
- (r'^shortcuts/render_to_response/dirs/$', 'render_to_response_view_with_dirs'),
- (r'^shortcuts/render/$', 'render_view'),
- (r'^shortcuts/render/base_context/$', 'render_view_with_base_context'),
- (r'^shortcuts/render/content_type/$', 'render_view_with_content_type'),
- (r'^shortcuts/render/status/$', 'render_view_with_status'),
- (r'^shortcuts/render/current_app/$', 'render_view_with_current_app'),
- (r'^shortcuts/render/dirs/$', 'render_with_dirs'),
- (r'^shortcuts/render/current_app_conflict/$', 'render_view_with_current_app_conflict'),
-)
+]
+
+urlpatterns += [
+ url(r'^shortcuts/render_to_response/$', views.render_to_response_view),
+ url(r'^shortcuts/render_to_response/request_context/$', views.render_to_response_view_with_request_context),
+ url(r'^shortcuts/render_to_response/content_type/$', views.render_to_response_view_with_content_type),
+ url(r'^shortcuts/render_to_response/dirs/$', views.render_to_response_view_with_dirs),
+ url(r'^shortcuts/render/$', views.render_view),
+ url(r'^shortcuts/render/base_context/$', views.render_view_with_base_context),
+ url(r'^shortcuts/render/content_type/$', views.render_view_with_content_type),
+ url(r'^shortcuts/render/status/$', views.render_view_with_status),
+ url(r'^shortcuts/render/current_app/$', views.render_view_with_current_app),
+ url(r'^shortcuts/render/dirs/$', views.render_with_dirs),
+ url(r'^shortcuts/render/current_app_conflict/$', views.render_view_with_current_app_conflict),
+]
# json response
-urlpatterns += patterns('view_tests.views',
- (r'^json/response/$', 'json_response_view'),
-)
+urlpatterns += [
+ url(r'^json/response/$', views.json_response_view),
+]
diff --git a/tests/view_tests/regression_21530_urls.py b/tests/view_tests/regression_21530_urls.py
index 14248d872b..7a91ddebd7 100644
--- a/tests/view_tests/regression_21530_urls.py
+++ b/tests/view_tests/regression_21530_urls.py
@@ -1,5 +1,5 @@
-from django.conf.urls import patterns, url
+from django.conf.urls import url
-urlpatterns = patterns('',
+urlpatterns = [
url(r'^index/$', 'view_tests.views.index_page', name='index'),
-)
+]
diff --git a/tests/view_tests/urls.py b/tests/view_tests/urls.py
index edf1bc56db..cefab5af25 100644
--- a/tests/view_tests/urls.py
+++ b/tests/view_tests/urls.py
@@ -1,8 +1,9 @@
# coding: utf-8
from os import path
-from django.conf.urls import patterns, url, include
+from django.conf.urls import url, include
from django.utils._os import upath
+from django.views import defaults, i18n
from . import views
@@ -41,38 +42,38 @@ js_info_dict_app5 = {
'packages': ('view_tests.app5',),
}
-urlpatterns = patterns('',
- (r'^$', views.index_page),
+urlpatterns = [
+ url(r'^$', views.index_page),
# Default views
- (r'^non_existing_url/', 'django.views.defaults.page_not_found'),
- (r'^server_error/', 'django.views.defaults.server_error'),
+ url(r'^non_existing_url/', defaults.page_not_found),
+ url(r'^server_error/', defaults.server_error),
# a view that raises an exception for the debug view
- (r'raises/$', views.raises),
+ url(r'raises/$', views.raises),
- (r'raises400/$', views.raises400),
- (r'raises403/$', views.raises403),
- (r'raises404/$', views.raises404),
- (r'raises500/$', views.raises500),
+ url(r'raises400/$', views.raises400),
+ url(r'raises403/$', views.raises403),
+ url(r'raises404/$', views.raises404),
+ url(r'raises500/$', views.raises500),
# i18n views
- (r'^i18n/', include('django.conf.urls.i18n')),
- (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
- (r'^jsi18n/app5/$', 'django.views.i18n.javascript_catalog', js_info_dict_app5),
- (r'^jsi18n_english_translation/$', 'django.views.i18n.javascript_catalog', js_info_dict_english_translation),
- (r'^jsi18n_multi_packages1/$', 'django.views.i18n.javascript_catalog', js_info_dict_multi_packages1),
- (r'^jsi18n_multi_packages2/$', 'django.views.i18n.javascript_catalog', js_info_dict_multi_packages2),
- (r'^jsi18n_admin/$', 'django.views.i18n.javascript_catalog', js_info_dict_admin),
- (r'^jsi18n_template/$', views.jsi18n),
+ url(r'^i18n/', include('django.conf.urls.i18n')),
+ url(r'^jsi18n/$', i18n.javascript_catalog, js_info_dict),
+ url(r'^jsi18n/app5/$', i18n.javascript_catalog, js_info_dict_app5),
+ url(r'^jsi18n_english_translation/$', i18n.javascript_catalog, js_info_dict_english_translation),
+ url(r'^jsi18n_multi_packages1/$', i18n.javascript_catalog, js_info_dict_multi_packages1),
+ url(r'^jsi18n_multi_packages2/$', i18n.javascript_catalog, js_info_dict_multi_packages2),
+ url(r'^jsi18n_admin/$', i18n.javascript_catalog, js_info_dict_admin),
+ url(r'^jsi18n_template/$', views.jsi18n),
# Static views
- (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': media_dir}),
-)
-
-urlpatterns += patterns('view_tests.views',
- url(r'view_exception/(?P<n>\d+)/$', 'view_exception', name='view_exception'),
- url(r'template_exception/(?P<n>\d+)/$', 'template_exception', name='template_exception'),
- url(r'^raises_template_does_not_exist/(?P<path>.+)$', 'raises_template_does_not_exist', name='raises_template_does_not_exist'),
- url(r'^render_no_template/$', 'render_no_template', name='render_no_template'),
-)
+ url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': media_dir}),
+]
+
+urlpatterns += [
+ url(r'view_exception/(?P<n>\d+)/$', views.view_exception, name='view_exception'),
+ url(r'template_exception/(?P<n>\d+)/$', views.template_exception, name='template_exception'),
+ url(r'^raises_template_does_not_exist/(?P<path>.+)$', views.raises_template_does_not_exist, name='raises_template_does_not_exist'),
+ url(r'^render_no_template/$', views.render_no_template, name='render_no_template'),
+]
diff --git a/tests/wsgi/urls.py b/tests/wsgi/urls.py
index 563b7238af..3ed0d5e8a8 100644
--- a/tests/wsgi/urls.py
+++ b/tests/wsgi/urls.py
@@ -1,11 +1,10 @@
-from django.conf.urls import url, patterns
+from django.conf.urls import url
from django.http import HttpResponse
def helloworld(request):
return HttpResponse("Hello World!")
-urlpatterns = patterns(
- "",
- url("^$", helloworld)
-)
+urlpatterns = [
+ url("^$", helloworld),
+]