mirror of
https://github.com/jazzband/django-downloadview.git
synced 2026-03-16 22:40:25 +00:00
44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
"""Tests around :py:mod:`django_downloadview.sendfile`."""
|
|
|
|
from django.http import Http404
|
|
import django.test
|
|
|
|
from django_downloadview.response import DownloadResponse
|
|
from django_downloadview.shortcuts import sendfile
|
|
|
|
|
|
class SendfileTestCase(django.test.TestCase):
|
|
"""Tests around :func:`django_downloadview.sendfile.sendfile`."""
|
|
|
|
def test_defaults(self):
|
|
"""sendfile() takes at least request and filename."""
|
|
request = django.test.RequestFactory().get("/fake-url")
|
|
filename = __file__
|
|
response = sendfile(request, filename)
|
|
self.assertTrue(isinstance(response, DownloadResponse))
|
|
self.assertFalse(response.attachment)
|
|
|
|
def test_custom(self):
|
|
"""sendfile() accepts various arguments for response tuning."""
|
|
request = django.test.RequestFactory().get("/fake-url")
|
|
filename = __file__
|
|
response = sendfile(
|
|
request,
|
|
filename,
|
|
attachment=True,
|
|
attachment_filename="toto.txt",
|
|
mimetype="test/octet-stream",
|
|
encoding="gzip",
|
|
)
|
|
self.assertTrue(isinstance(response, DownloadResponse))
|
|
self.assertTrue(response.attachment)
|
|
self.assertEqual(response.basename, "toto.txt")
|
|
self.assertEqual(response["Content-Type"], "test/octet-stream; charset=utf-8")
|
|
self.assertEqual(response.get_encoding(), "gzip")
|
|
|
|
def test_404(self):
|
|
"""sendfile() raises Http404 if file does not exists."""
|
|
request = django.test.RequestFactory().get("/fake-url")
|
|
filename = "i-do-no-exist"
|
|
with self.assertRaises(Http404):
|
|
sendfile(request, filename)
|