mirror of
https://github.com/jazzband/django-downloadview.git
synced 2026-03-16 22:40:25 +00:00
Add isort support.
This commit is contained in:
parent
b094ed6cec
commit
6c7c8d9a60
53 changed files with 69 additions and 115 deletions
6
Makefile
6
Makefile
|
|
@ -8,7 +8,7 @@
|
|||
PIP = pip
|
||||
TOX = tox
|
||||
BLACK = black
|
||||
|
||||
ISORT = isort
|
||||
|
||||
#: help - Display callable targets.
|
||||
.PHONY: help
|
||||
|
|
@ -101,3 +101,7 @@ release:
|
|||
.PHONY: black
|
||||
black:
|
||||
$(BLACK) demo tests django_downloadview
|
||||
|
||||
.PHONY: isort
|
||||
isort:
|
||||
$(ISORT) -m 3 --line-width=99 --use-parentheses --trailing-comma --recursive django_downloadview tests demo
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import os
|
||||
|
||||
from django.core.files.base import ContentFile
|
||||
import django.test
|
||||
from django.core.files.base import ContentFile
|
||||
|
||||
from django_downloadview.apache import assert_x_sendfile
|
||||
|
||||
from demoproject.compat import reverse
|
||||
from demoproject.apache.views import storage, storage_dir
|
||||
from demoproject.compat import reverse
|
||||
|
||||
|
||||
def setup_file():
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
"""URL mapping."""
|
||||
from django.conf.urls import url
|
||||
|
||||
from demoproject.compat import patterns
|
||||
from demoproject.apache import views
|
||||
|
||||
from demoproject.compat import patterns
|
||||
|
||||
urlpatterns = patterns(
|
||||
"demoproject.apache.views",
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ from django.core.files.storage import FileSystemStorage
|
|||
from django_downloadview import StorageDownloadView
|
||||
from django_downloadview.apache import x_sendfile
|
||||
|
||||
|
||||
storage_dir = os.path.join(settings.MEDIA_ROOT, "apache")
|
||||
storage = FileSystemStorage(
|
||||
location=storage_dir, base_url="".join([settings.MEDIA_URL, "apache/"])
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from distutils.version import StrictVersion
|
||||
from django.utils.version import get_version
|
||||
|
||||
from django.utils.version import get_version
|
||||
|
||||
try:
|
||||
from django.conf.urls import patterns # noqa
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
import django.test
|
||||
|
||||
from django_downloadview import assert_download_response
|
||||
|
||||
from demoproject.compat import reverse
|
||||
from django_downloadview import assert_download_response
|
||||
|
||||
|
||||
class SimpleURLTestCase(django.test.TestCase):
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from django.conf.urls import url
|
|||
from demoproject.compat import patterns
|
||||
from demoproject.http import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
"",
|
||||
url(r"^simple_url/$", views.simple_url, name="simple_url"),
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import os
|
||||
|
||||
from django.core.files.base import ContentFile
|
||||
import django.test
|
||||
from django.core.files.base import ContentFile
|
||||
|
||||
from django_downloadview.lighttpd import assert_x_sendfile
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ from django.conf.urls import url
|
|||
from demoproject.compat import patterns
|
||||
from demoproject.lighttpd import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
"demoproject.lighttpd.views",
|
||||
url(
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ from django.core.files.storage import FileSystemStorage
|
|||
from django_downloadview import StorageDownloadView
|
||||
from django_downloadview.lighttpd import x_sendfile
|
||||
|
||||
|
||||
storage_dir = os.path.join(settings.MEDIA_ROOT, "lighttpd")
|
||||
storage = FileSystemStorage(
|
||||
location=storage_dir, base_url="".join([settings.MEDIA_URL, "lighttpd/"])
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import os
|
||||
|
||||
from django.core.files.base import ContentFile
|
||||
import django.test
|
||||
from django.core.files.base import ContentFile
|
||||
|
||||
from django_downloadview.nginx import assert_x_accel_redirect
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ from django.conf.urls import url
|
|||
from demoproject.compat import patterns
|
||||
from demoproject.nginx import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
"demoproject.nginx.views",
|
||||
url(
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ from django.core.files.storage import FileSystemStorage
|
|||
from django_downloadview import StorageDownloadView
|
||||
from django_downloadview.nginx import x_accel_redirect
|
||||
|
||||
|
||||
storage_dir = os.path.join(settings.MEDIA_ROOT, "nginx")
|
||||
storage = FileSystemStorage(
|
||||
location=storage_dir, base_url="".join([settings.MEDIA_URL, "nginx/"])
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
from django.core.files.base import ContentFile
|
||||
import django.test
|
||||
|
||||
from django_downloadview import temporary_media_root, assert_download_response
|
||||
from django.core.files.base import ContentFile
|
||||
|
||||
from demoproject.compat import reverse
|
||||
from demoproject.object.models import Document
|
||||
|
||||
from django_downloadview import assert_download_response, temporary_media_root
|
||||
|
||||
# Fixtures.
|
||||
slug = "hello-world"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from django.conf.urls import url
|
|||
from demoproject.compat import patterns
|
||||
from demoproject.object import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
"",
|
||||
url(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
from django_downloadview import ObjectDownloadView
|
||||
|
||||
from demoproject.object.models import Document
|
||||
|
||||
from django_downloadview import ObjectDownloadView
|
||||
|
||||
#: Serve ``file`` attribute of ``Document`` model.
|
||||
default_file_view = ObjectDownloadView.as_view(model=Document)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
import django.test
|
||||
|
||||
from django_downloadview import assert_download_response
|
||||
|
||||
from demoproject.compat import reverse
|
||||
from django_downloadview import assert_download_response
|
||||
|
||||
|
||||
class StaticPathTestCase(django.test.TestCase):
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from django.conf.urls import url
|
|||
from demoproject.compat import patterns
|
||||
from demoproject.path import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
"",
|
||||
url(r"^static-path/$", views.static_path, name="static_path"),
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import os
|
|||
|
||||
from django_downloadview import PathDownloadView
|
||||
|
||||
|
||||
# Let's initialize some fixtures.
|
||||
app_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
project_dir = os.path.dirname(app_dir)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Django settings for django-downloadview demo project."""
|
||||
|
||||
from distutils.version import StrictVersion
|
||||
import os
|
||||
from distutils.version import StrictVersion
|
||||
|
||||
from django.utils.version import get_version
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
from django.core.files.storage import FileSystemStorage
|
||||
|
||||
|
||||
storage = FileSystemStorage()
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
import datetime
|
||||
import unittest
|
||||
|
||||
import django.test
|
||||
from django.core.files.base import ContentFile
|
||||
from django.http.response import HttpResponseNotModified
|
||||
import django.test
|
||||
|
||||
from django_downloadview import assert_download_response, temporary_media_root
|
||||
from django_downloadview import setup_view
|
||||
|
||||
from demoproject.compat import reverse
|
||||
from demoproject.storage import views
|
||||
|
||||
from django_downloadview import (
|
||||
assert_download_response,
|
||||
setup_view,
|
||||
temporary_media_root,
|
||||
)
|
||||
|
||||
# Fixtures.
|
||||
file_content = "Hello world!\n"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from django.conf.urls import url
|
|||
from demoproject.compat import patterns
|
||||
from demoproject.storage import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
"",
|
||||
url(
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ from django.core.files.storage import FileSystemStorage
|
|||
|
||||
from django_downloadview import StorageDownloadView
|
||||
|
||||
|
||||
storage = FileSystemStorage()
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
# coding=utf8
|
||||
"""Test suite for demoproject.download."""
|
||||
from demoproject.compat import reverse
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from demoproject.compat import reverse
|
||||
|
||||
|
||||
class HomeViewTestCase(TestCase):
|
||||
"""Test homepage."""
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
from django.conf.urls import url
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
from demoproject.compat import patterns, include
|
||||
|
||||
from demoproject.compat import include, patterns
|
||||
|
||||
home = TemplateView.as_view(template_name="home.html")
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
import django.test
|
||||
|
||||
from django_downloadview import assert_download_response
|
||||
|
||||
from demoproject.compat import reverse
|
||||
from django_downloadview import assert_download_response
|
||||
|
||||
|
||||
class TextTestCase(django.test.TestCase):
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from django.conf.urls import url
|
|||
from demoproject.compat import patterns
|
||||
from demoproject.virtual import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
"",
|
||||
url(r"^text/$", views.TextDownloadView.as_view(), name="text"),
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
from io import StringIO
|
||||
|
||||
from django.core.files.base import ContentFile
|
||||
|
||||
from django_downloadview import VirtualDownloadView
|
||||
from django_downloadview import VirtualFile
|
||||
from django_downloadview import TextIteratorIO
|
||||
from django_downloadview import TextIteratorIO, VirtualDownloadView, VirtualFile
|
||||
from io import StringIO
|
||||
|
||||
|
||||
class TextDownloadView(VirtualDownloadView):
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ import os
|
|||
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "%s.settings" % __package__)
|
||||
|
||||
# This application object is used by any WSGI server configured to use this
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Python packaging."""
|
||||
import os
|
||||
|
||||
from setuptools import setup
|
||||
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
project_root = os.path.dirname(here)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
"""Serve files with Django and reverse proxies."""
|
||||
import pkg_resources
|
||||
|
||||
from django_downloadview.api import * # NoQA
|
||||
|
||||
#: Module version, as defined in PEP-0396.
|
||||
__version__ = pkg_resources.get_distribution(__package__.replace("-", "_")).version
|
||||
|
||||
|
||||
# API shortcuts.
|
||||
from django_downloadview.api import * # NoQA
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ Apache optimizations </optimizations/apache>`.
|
|||
"""
|
||||
# API shortcuts.
|
||||
from django_downloadview.apache.decorators import x_sendfile # NoQA
|
||||
from django_downloadview.apache.middlewares import XSendfileMiddleware # NoQA
|
||||
from django_downloadview.apache.response import XSendfileResponse # NoQA
|
||||
from django_downloadview.apache.tests import assert_x_sendfile # NoQA
|
||||
from django_downloadview.apache.middlewares import XSendfileMiddleware # NoQA
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
"""Decorators to apply Apache X-Sendfile on a specific view."""
|
||||
from django_downloadview.decorators import DownloadDecorator
|
||||
from django_downloadview.apache.middlewares import XSendfileMiddleware
|
||||
from django_downloadview.decorators import DownloadDecorator
|
||||
|
||||
|
||||
def x_sendfile(view_func, *args, **kwargs):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from django_downloadview.apache.response import XSendfileResponse
|
||||
from django_downloadview.middlewares import (
|
||||
ProxiedDownloadMiddleware,
|
||||
NoRedirectionMatch,
|
||||
ProxiedDownloadMiddleware,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,31 +1,25 @@
|
|||
"""Declaration of API shortcuts."""
|
||||
from django_downloadview.files import HTTPFile, StorageFile, VirtualFile # NoQA
|
||||
from django_downloadview.io import BytesIteratorIO, TextIteratorIO # NoQA
|
||||
from django_downloadview.files import StorageFile, VirtualFile, HTTPFile # NoQA
|
||||
from django_downloadview.response import (
|
||||
DownloadResponse, # NoQA
|
||||
ProxiedDownloadResponse,
|
||||
)
|
||||
from django_downloadview.middlewares import BaseDownloadMiddleware # NoQA
|
||||
from django_downloadview.middlewares import (
|
||||
BaseDownloadMiddleware, # NoQA
|
||||
DownloadDispatcherMiddleware,
|
||||
SmartDownloadMiddleware,
|
||||
)
|
||||
from django_downloadview.response import DownloadResponse # NoQA
|
||||
from django_downloadview.response import ProxiedDownloadResponse
|
||||
from django_downloadview.shortcuts import sendfile # NoQA
|
||||
from django_downloadview.test import assert_download_response # NoQA
|
||||
from django_downloadview.test import setup_view, temporary_media_root
|
||||
from django_downloadview.views import PathDownloadView # NoQA
|
||||
from django_downloadview.views import (
|
||||
PathDownloadView, # NoQA
|
||||
ObjectDownloadView,
|
||||
StorageDownloadView,
|
||||
HTTPDownloadView,
|
||||
VirtualDownloadView,
|
||||
BaseDownloadView,
|
||||
DownloadMixin,
|
||||
HTTPDownloadView,
|
||||
ObjectDownloadView,
|
||||
StorageDownloadView,
|
||||
VirtualDownloadView,
|
||||
)
|
||||
from django_downloadview.shortcuts import sendfile # NoQA
|
||||
from django_downloadview.test import (
|
||||
assert_download_response, # NoQA
|
||||
setup_view,
|
||||
temporary_media_root,
|
||||
)
|
||||
|
||||
|
||||
# Backward compatibility.
|
||||
StringIteratorIO = TextIteratorIO
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
"""File wrappers for use as exchange data between views and responses."""
|
||||
from io import BytesIO
|
||||
from urllib.parse import urlparse
|
||||
|
||||
import requests
|
||||
from django.core.files.base import File
|
||||
from django.utils.encoding import force_bytes
|
||||
|
||||
import requests
|
||||
|
||||
from django_downloadview.io import BytesIteratorIO
|
||||
from io import BytesIO
|
||||
|
||||
|
||||
class StorageFile(File):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
"""Low-level IO operations, for use with file wrappers."""
|
||||
import io
|
||||
from django.utils.encoding import force_bytes, force_text
|
||||
|
||||
from django.utils.encoding import force_text, force_bytes
|
||||
import io
|
||||
|
||||
|
||||
class TextIteratorIO(io.TextIOBase):
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@ See also `documentation of X-Sendfile for Lighttpd
|
|||
"""
|
||||
# API shortcuts.
|
||||
from django_downloadview.lighttpd.decorators import x_sendfile # NoQA
|
||||
from django_downloadview.lighttpd.middlewares import XSendfileMiddleware # NoQA
|
||||
from django_downloadview.lighttpd.response import XSendfileResponse # NoQA
|
||||
from django_downloadview.lighttpd.tests import assert_x_sendfile # NoQA
|
||||
from django_downloadview.lighttpd.middlewares import XSendfileMiddleware # NoQA
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from django_downloadview.lighttpd.response import XSendfileResponse
|
||||
from django_downloadview.middlewares import (
|
||||
ProxiedDownloadMiddleware,
|
||||
NoRedirectionMatch,
|
||||
ProxiedDownloadMiddleware,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,13 +4,16 @@ Download middlewares capture :py:class:`django_downloadview.DownloadResponse`
|
|||
responses and may replace them with optimized download responses.
|
||||
|
||||
"""
|
||||
import copy
|
||||
import collections
|
||||
import copy
|
||||
import os
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
from django_downloadview.response import DownloadResponse
|
||||
from django_downloadview.utils import import_member
|
||||
|
||||
try:
|
||||
from django.utils.deprecation import MiddlewareMixin
|
||||
except ImportError:
|
||||
|
|
@ -20,10 +23,6 @@ except ImportError:
|
|||
super(MiddlewareMixin, self).__init__()
|
||||
|
||||
|
||||
from django_downloadview.response import DownloadResponse
|
||||
from django_downloadview.utils import import_member
|
||||
|
||||
|
||||
#: Sentinel value to detect whether configuration is to be loaded from Django
|
||||
#: settings or not.
|
||||
AUTO_CONFIGURE = object()
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ See also `Nginx X-accel documentation <http://wiki.nginx.org/X-accel>`_ and
|
|||
"""
|
||||
# API shortcuts.
|
||||
from django_downloadview.nginx.decorators import x_accel_redirect # NoQA
|
||||
from django_downloadview.nginx.middlewares import XAccelRedirectMiddleware # NoQA
|
||||
from django_downloadview.nginx.response import XAccelRedirectResponse # NoQA
|
||||
from django_downloadview.nginx.tests import assert_x_accel_redirect # NoQA
|
||||
from django_downloadview.nginx.middlewares import XAccelRedirectMiddleware # NoQA
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ from django.conf import settings
|
|||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
from django_downloadview.middlewares import (
|
||||
ProxiedDownloadMiddleware,
|
||||
NoRedirectionMatch,
|
||||
ProxiedDownloadMiddleware,
|
||||
)
|
||||
from django_downloadview.nginx.response import XAccelRedirectResponse
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import warnings
|
|||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
|
||||
# In version 1.3, former XAccelRedirectMiddleware has been renamed to
|
||||
# SingleXAccelRedirectMiddleware. So tell the users.
|
||||
deprecated_middleware = "django_downloadview.nginx.XAccelRedirectMiddleware"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
""":py:class:`django.http.HttpResponse` subclasses."""
|
||||
import os
|
||||
import mimetypes
|
||||
import os
|
||||
import re
|
||||
import unicodedata
|
||||
from urllib.parse import quote
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
"""Utility functions that may be implemented in external packages."""
|
||||
import re
|
||||
|
||||
|
||||
charset_pattern = re.compile(r"charset=(?P<charset>.+)$", re.I | re.U)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
"""Views to stream files."""
|
||||
# API shortcuts.
|
||||
from django_downloadview.views.base import DownloadMixin, BaseDownloadView # NoQA
|
||||
from django_downloadview.views.base import BaseDownloadView, DownloadMixin # NoQA
|
||||
from django_downloadview.views.http import HTTPDownloadView # NoQA
|
||||
from django_downloadview.views.object import ObjectDownloadView # NoQA
|
||||
from django_downloadview.views.path import PathDownloadView # NoQA
|
||||
from django_downloadview.views.storage import StorageDownloadView # NoQA
|
||||
from django_downloadview.views.object import ObjectDownloadView # NoQA
|
||||
from django_downloadview.views.http import HTTPDownloadView # NoQA
|
||||
from django_downloadview.views.virtual import VirtualDownloadView # NoQA
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
:class:`BaseDownloadView`"""
|
||||
import calendar
|
||||
|
||||
from django.http import HttpResponseNotModified, Http404
|
||||
from django.http import Http404, HttpResponseNotModified
|
||||
from django.views.generic.base import View
|
||||
from django.views.static import was_modified_since
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
"""Test suite around :mod:`django_downloadview.api` and deprecation plan."""
|
||||
from importlib import import_module, reload
|
||||
import unittest
|
||||
import warnings
|
||||
from importlib import import_module, reload
|
||||
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
import django.test
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.test.utils import override_settings
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
"""Tests around :mod:`django_downloadview.io`."""
|
||||
import unittest
|
||||
|
||||
from django_downloadview import TextIteratorIO, BytesIteratorIO
|
||||
|
||||
from django_downloadview import BytesIteratorIO, TextIteratorIO
|
||||
|
||||
HELLO_TEXT = u"Hello world!\né\n"
|
||||
HELLO_BYTES = b"Hello world!\n\xc3\xa9\n"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
import os
|
||||
import unittest
|
||||
|
||||
|
||||
tests_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
project_dir = os.path.dirname(tests_dir)
|
||||
build_dir = os.path.join(project_dir, "var", "docs", "html")
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
"""Tests around :py:mod:`django_downloadview.sendfile`."""
|
||||
from django.http import Http404
|
||||
import django.test
|
||||
from django.http import Http404
|
||||
|
||||
from django_downloadview.response import DownloadResponse
|
||||
from django_downloadview.shortcuts import sendfile
|
||||
|
|
|
|||
|
|
@ -3,20 +3,15 @@ import calendar
|
|||
import os
|
||||
import unittest
|
||||
from datetime import datetime
|
||||
from unittest import mock
|
||||
|
||||
try:
|
||||
from unittest import mock
|
||||
except ImportError:
|
||||
import mock
|
||||
|
||||
import django.test
|
||||
from django.core.files import File
|
||||
from django.http import Http404
|
||||
from django.http.response import HttpResponseNotModified
|
||||
import django.test
|
||||
|
||||
from django_downloadview import exceptions
|
||||
from django_downloadview import exceptions, views
|
||||
from django_downloadview.test import setup_view
|
||||
from django_downloadview import views
|
||||
|
||||
|
||||
class DownloadMixinTestCase(unittest.TestCase):
|
||||
|
|
|
|||
Loading…
Reference in a new issue