From 8e439d3485e679f768c10ff4280790dd6c271f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20HUBSCHER?= Date: Fri, 18 Sep 2020 10:23:56 +0200 Subject: [PATCH 1/2] Remove obsolete URL syntax. --- demo/demoproject/apache/tests.py | 2 +- demo/demoproject/apache/urls.py | 17 +++++----- demo/demoproject/compat.py | 26 --------------- demo/demoproject/http/tests.py | 3 +- demo/demoproject/http/urls.py | 13 ++++---- demo/demoproject/lighttpd/tests.py | 2 +- demo/demoproject/lighttpd/urls.py | 17 +++++----- demo/demoproject/nginx/tests.py | 2 +- demo/demoproject/nginx/urls.py | 17 +++++----- demo/demoproject/object/tests.py | 2 +- demo/demoproject/object/urls.py | 17 +++++----- demo/demoproject/path/tests.py | 3 +- demo/demoproject/path/urls.py | 13 ++++---- demo/demoproject/settings.py | 0 demo/demoproject/storage/tests.py | 2 +- demo/demoproject/storage/urls.py | 13 ++++---- demo/demoproject/tests.py | 4 +-- demo/demoproject/urls.py | 51 ++++++++++++++---------------- demo/demoproject/virtual/tests.py | 3 +- demo/demoproject/virtual/urls.py | 15 ++++----- tox.ini | 4 +-- 21 files changed, 92 insertions(+), 134 deletions(-) delete mode 100644 demo/demoproject/compat.py mode change 100755 => 100644 demo/demoproject/settings.py mode change 100755 => 100644 demo/demoproject/urls.py diff --git a/demo/demoproject/apache/tests.py b/demo/demoproject/apache/tests.py index 3726db2..4ac4fec 100644 --- a/demo/demoproject/apache/tests.py +++ b/demo/demoproject/apache/tests.py @@ -2,11 +2,11 @@ import os from django.core.files.base import ContentFile import django.test +from django.urls import reverse from django_downloadview.apache import assert_x_sendfile from demoproject.apache.views import storage, storage_dir -from demoproject.compat import reverse def setup_file(): diff --git a/demo/demoproject/apache/urls.py b/demo/demoproject/apache/urls.py index 9ef207e..497d57f 100644 --- a/demo/demoproject/apache/urls.py +++ b/demo/demoproject/apache/urls.py @@ -1,19 +1,18 @@ """URL mapping.""" -from django.conf.urls import url +from django.urls import path from demoproject.apache import views -from demoproject.compat import patterns -urlpatterns = patterns( - "demoproject.apache.views", - url( - r"^optimized-by-middleware/$", +app_name = "apache" +urlpatterns = [ + path( + "optimized-by-middleware/", views.optimized_by_middleware, name="optimized_by_middleware", ), - url( - r"^optimized-by-decorator/$", + path( + "optimized-by-decorator/", views.optimized_by_decorator, name="optimized_by_decorator", ), -) +] diff --git a/demo/demoproject/compat.py b/demo/demoproject/compat.py deleted file mode 100644 index d0e1c99..0000000 --- a/demo/demoproject/compat.py +++ /dev/null @@ -1,26 +0,0 @@ -from distutils.version import StrictVersion - -from django.utils.version import get_version - -try: - from django.conf.urls import patterns # noqa -except ImportError: - - def patterns(prefix, *args): - return list(args) - - -try: - from django.urls import reverse # noqa -except ImportError: - from django.core.urlresolvers import reverse # noqa - -if StrictVersion(get_version()) >= StrictVersion("2.0"): - from django.conf.urls import include as urlinclude # noqa - - def include(arg, namespace=None, app_name=None): - return urlinclude((arg, app_name), namespace=namespace) - - -else: - from django.conf.urls import include # noqa diff --git a/demo/demoproject/http/tests.py b/demo/demoproject/http/tests.py index dcb0f4e..5c1f07a 100644 --- a/demo/demoproject/http/tests.py +++ b/demo/demoproject/http/tests.py @@ -1,9 +1,8 @@ import django.test +from django.urls import reverse from django_downloadview import assert_download_response -from demoproject.compat import reverse - class SimpleURLTestCase(django.test.TestCase): def test_download_response(self): diff --git a/demo/demoproject/http/urls.py b/demo/demoproject/http/urls.py index 1994709..5820b1d 100644 --- a/demo/demoproject/http/urls.py +++ b/demo/demoproject/http/urls.py @@ -1,10 +1,9 @@ -from django.conf.urls import url +from django.urls import path -from demoproject.compat import patterns from demoproject.http import views -urlpatterns = patterns( - "", - url(r"^simple_url/$", views.simple_url, name="simple_url"), - url(r"^avatar_url/$", views.avatar_url, name="avatar_url"), -) +app_name = "http" +urlpatterns = [ + path("simple_url/", views.simple_url, name="simple_url"), + path("avatar_url/", views.avatar_url, name="avatar_url"), +] diff --git a/demo/demoproject/lighttpd/tests.py b/demo/demoproject/lighttpd/tests.py index 82f4f43..3eb8533 100644 --- a/demo/demoproject/lighttpd/tests.py +++ b/demo/demoproject/lighttpd/tests.py @@ -2,10 +2,10 @@ import os from django.core.files.base import ContentFile import django.test +from django.urls import reverse from django_downloadview.lighttpd import assert_x_sendfile -from demoproject.compat import reverse from demoproject.lighttpd.views import storage, storage_dir diff --git a/demo/demoproject/lighttpd/urls.py b/demo/demoproject/lighttpd/urls.py index 9f1a608..237338e 100644 --- a/demo/demoproject/lighttpd/urls.py +++ b/demo/demoproject/lighttpd/urls.py @@ -1,19 +1,18 @@ """URL mapping.""" -from django.conf.urls import url +from django.urls import path -from demoproject.compat import patterns from demoproject.lighttpd import views -urlpatterns = patterns( - "demoproject.lighttpd.views", - url( - r"^optimized-by-middleware/$", +app_name = "lighttpd" +urlpatterns = [ + path( + "optimized-by-middleware/", views.optimized_by_middleware, name="optimized_by_middleware", ), - url( - r"^optimized-by-decorator/$", + path( + "optimized-by-decorator/", views.optimized_by_decorator, name="optimized_by_decorator", ), -) +] diff --git a/demo/demoproject/nginx/tests.py b/demo/demoproject/nginx/tests.py index 3196f2b..1b26340 100644 --- a/demo/demoproject/nginx/tests.py +++ b/demo/demoproject/nginx/tests.py @@ -2,10 +2,10 @@ import os from django.core.files.base import ContentFile import django.test +from django.urls import reverse from django_downloadview.nginx import assert_x_accel_redirect -from demoproject.compat import reverse from demoproject.nginx.views import storage, storage_dir diff --git a/demo/demoproject/nginx/urls.py b/demo/demoproject/nginx/urls.py index 8583f6a..01c9b88 100644 --- a/demo/demoproject/nginx/urls.py +++ b/demo/demoproject/nginx/urls.py @@ -1,20 +1,19 @@ """URL mapping.""" -from django.conf.urls import url +from django.urls import path -from demoproject.compat import patterns from demoproject.nginx import views -urlpatterns = patterns( - "demoproject.nginx.views", - url( - r"^optimized-by-middleware/$", +app_name = "nginx" +urlpatterns = [ + path( + "optimized-by-middleware/", views.optimized_by_middleware, name="optimized_by_middleware", ), - url( - r"^optimized-by-decorator/$", + path( + "optimized-by-decorator/", views.optimized_by_decorator, name="optimized_by_decorator", ), -) +] diff --git a/demo/demoproject/object/tests.py b/demo/demoproject/object/tests.py index 7446299..6b47e9c 100644 --- a/demo/demoproject/object/tests.py +++ b/demo/demoproject/object/tests.py @@ -1,9 +1,9 @@ from django.core.files.base import ContentFile import django.test +from django.urls import reverse from django_downloadview import assert_download_response, temporary_media_root -from demoproject.compat import reverse from demoproject.object.models import Document # Fixtures. diff --git a/demo/demoproject/object/urls.py b/demo/demoproject/object/urls.py index 6e9b83f..e98f896 100644 --- a/demo/demoproject/object/urls.py +++ b/demo/demoproject/object/urls.py @@ -1,28 +1,27 @@ -from django.conf.urls import url +from django.urls import re_path -from demoproject.compat import patterns from demoproject.object import views -urlpatterns = patterns( - "", - url( +app_name = "object" +urlpatterns = [ + re_path( r"^default-file/(?P[a-zA-Z0-9_-]+)/$", views.default_file_view, name="default_file", ), - url( + re_path( r"^another-file/(?P[a-zA-Z0-9_-]+)/$", views.another_file_view, name="another_file", ), - url( + re_path( r"^deserialized_basename/(?P[a-zA-Z0-9_-]+)/$", views.deserialized_basename_view, name="deserialized_basename", ), - url( + re_path( r"^inline-file/(?P[a-zA-Z0-9_-]+)/$", views.inline_file_view, name="inline_file", ), -) +] diff --git a/demo/demoproject/path/tests.py b/demo/demoproject/path/tests.py index cf51231..b1d0f4a 100644 --- a/demo/demoproject/path/tests.py +++ b/demo/demoproject/path/tests.py @@ -1,9 +1,8 @@ import django.test +from django.urls import reverse from django_downloadview import assert_download_response -from demoproject.compat import reverse - class StaticPathTestCase(django.test.TestCase): def test_download_response(self): diff --git a/demo/demoproject/path/urls.py b/demo/demoproject/path/urls.py index 63c1c43..446dec6 100644 --- a/demo/demoproject/path/urls.py +++ b/demo/demoproject/path/urls.py @@ -1,14 +1,13 @@ -from django.conf.urls import url +from django.urls import path, re_path -from demoproject.compat import patterns from demoproject.path import views -urlpatterns = patterns( - "", - url(r"^static-path/$", views.static_path, name="static_path"), - url( +app_name = "path" +urlpatterns = [ + path("static-path/", views.static_path, name="static_path"), + re_path( r"^dynamic-path/(?P[a-zA-Z0-9_-]+\.[a-zA-Z0-9]{1,4})$", views.dynamic_path, name="dynamic_path", ), -) +] diff --git a/demo/demoproject/settings.py b/demo/demoproject/settings.py old mode 100755 new mode 100644 diff --git a/demo/demoproject/storage/tests.py b/demo/demoproject/storage/tests.py index 790dfdf..f6e6773 100644 --- a/demo/demoproject/storage/tests.py +++ b/demo/demoproject/storage/tests.py @@ -4,6 +4,7 @@ import unittest from django.core.files.base import ContentFile from django.http.response import HttpResponseNotModified import django.test +from django.urls import reverse from django_downloadview import ( assert_download_response, @@ -11,7 +12,6 @@ from django_downloadview import ( temporary_media_root, ) -from demoproject.compat import reverse from demoproject.storage import views # Fixtures. diff --git a/demo/demoproject/storage/urls.py b/demo/demoproject/storage/urls.py index 6b5dc17..f96c008 100644 --- a/demo/demoproject/storage/urls.py +++ b/demo/demoproject/storage/urls.py @@ -1,18 +1,17 @@ -from django.conf.urls import url +from django.urls import re_path -from demoproject.compat import patterns from demoproject.storage import views -urlpatterns = patterns( - "", - url( +app_name = "storage" +urlpatterns = [ + re_path( r"^static-path/(?P[a-zA-Z0-9_-]+\.[a-zA-Z0-9]{1,4})$", views.static_path, name="static_path", ), - url( + re_path( r"^dynamic-path/(?P[a-zA-Z0-9_-]+\.[a-zA-Z0-9]{1,4})$", views.dynamic_path, name="dynamic_path", ), -) +] diff --git a/demo/demoproject/tests.py b/demo/demoproject/tests.py index f6bbfe3..56864bb 100644 --- a/demo/demoproject/tests.py +++ b/demo/demoproject/tests.py @@ -1,8 +1,6 @@ -# coding=utf8 """Test suite for demoproject.download.""" from django.test import TestCase - -from demoproject.compat import reverse +from django.urls import reverse class HomeViewTestCase(TestCase): diff --git a/demo/demoproject/urls.py b/demo/demoproject/urls.py old mode 100755 new mode 100644 index caf80f6..2dcc77c --- a/demo/demoproject/urls.py +++ b/demo/demoproject/urls.py @@ -1,47 +1,44 @@ -from django.conf.urls import url +from django.urls import include, path from django.views.generic import TemplateView -from demoproject.compat import include, patterns - home = TemplateView.as_view(template_name="home.html") -urlpatterns = patterns( - "", +urlpatterns = [ # ObjectDownloadView. - url( - r"^object/", - include("demoproject.object.urls", app_name="object", namespace="object"), + path( + "object/", + include("demoproject.object.urls", namespace="object"), ), # StorageDownloadView. - url( - r"^storage/", - include("demoproject.storage.urls", app_name="storage", namespace="storage"), + path( + "storage/", + include("demoproject.storage.urls", namespace="storage"), ), # PathDownloadView. - url(r"^path/", include("demoproject.path.urls", app_name="path", namespace="path")), + path("path/", include("demoproject.path.urls", namespace="path")), # HTTPDownloadView. - url(r"^http/", include("demoproject.http.urls", app_name="http", namespace="http")), + path("http/", include("demoproject.http.urls", namespace="http")), # VirtualDownloadView. - url( - r"^virtual/", - include("demoproject.virtual.urls", app_name="virtual", namespace="virtual"), + path( + "virtual/", + include("demoproject.virtual.urls", namespace="virtual"), ), # Nginx optimizations. - url( - r"^nginx/", - include("demoproject.nginx.urls", app_name="nginx", namespace="nginx"), + path( + "nginx/", + include("demoproject.nginx.urls", namespace="nginx"), ), # Apache optimizations. - url( - r"^apache/", - include("demoproject.apache.urls", app_name="apache", namespace="apache"), + path( + "apache/", + include("demoproject.apache.urls", namespace="apache"), ), # Lighttpd optimizations. - url( - r"^lighttpd/", - include("demoproject.lighttpd.urls", app_name="lighttpd", namespace="lighttpd"), + path( + "lighttpd/", + include("demoproject.lighttpd.urls", namespace="lighttpd"), ), # An informative homepage. - url(r"$", home, name="home"), -) + path("", home, name="home"), +] diff --git a/demo/demoproject/virtual/tests.py b/demo/demoproject/virtual/tests.py index fb3b164..43bd9f9 100644 --- a/demo/demoproject/virtual/tests.py +++ b/demo/demoproject/virtual/tests.py @@ -1,9 +1,8 @@ import django.test +from django.urls import reverse from django_downloadview import assert_download_response -from demoproject.compat import reverse - class TextTestCase(django.test.TestCase): def test_download_response(self): diff --git a/demo/demoproject/virtual/urls.py b/demo/demoproject/virtual/urls.py index e1226dd..97ab9ff 100644 --- a/demo/demoproject/virtual/urls.py +++ b/demo/demoproject/virtual/urls.py @@ -1,11 +1,10 @@ -from django.conf.urls import url +from django.urls import path -from demoproject.compat import patterns from demoproject.virtual import views -urlpatterns = patterns( - "", - url(r"^text/$", views.TextDownloadView.as_view(), name="text"), - url(r"^stringio/$", views.StringIODownloadView.as_view(), name="stringio"), - url(r"^gerenated/$", views.GeneratedDownloadView.as_view(), name="generated"), -) +app_name = "virtual" +urlpatterns = [ + path("text/", views.TextDownloadView.as_view(), name="text"), + path("stringio/", views.StringIODownloadView.as_view(), name="stringio"), + path("gerenated/", views.GeneratedDownloadView.as_view(), name="generated"), +] diff --git a/tox.ini b/tox.ini index 24b7dc6..5334580 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{35,36,36,37,38}-django{111,22,30}, +envlist = py{36,37,38}-django{22,30,31}, flake8, sphinx, readme [travis] @@ -9,9 +9,9 @@ python= [testenv] deps = coverage - django111: Django>=1.11,<2.0 django22: Django>=2.2,<3.0 django30: Django>=3.0,<3.1 + django31: Django>=3.1,<3.2 nose py27: mock commands = From 3da22537df4a9b03723615b8c8b4a5951bc28bd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20HUBSCHER?= Date: Fri, 18 Sep 2020 11:19:21 +0200 Subject: [PATCH 2/2] Fix doc. --- docs/views/object.txt | 2 +- docs/views/path.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/views/object.txt b/docs/views/object.txt index db49996..507d013 100644 --- a/docs/views/object.txt +++ b/docs/views/object.txt @@ -38,7 +38,7 @@ Setup a view to stream the ``file`` attribute: .. literalinclude:: /../demo/demoproject/object/urls.py :language: python - :lines: 1-7, 8-10, 20 + :lines: 1-7, 8-11, 20 ************ diff --git a/docs/views/path.txt b/docs/views/path.txt index 13b336c..1d9bcaa 100644 --- a/docs/views/path.txt +++ b/docs/views/path.txt @@ -54,7 +54,7 @@ via URLconfs: .. literalinclude:: /../demo/demoproject/path/urls.py :language: python - :lines: 1-7, 11-13, 14 + :lines: 1-13 *************