mirror of
https://github.com/jazzband/django-downloadview.git
synced 2026-03-16 22:40:25 +00:00
42 lines
1.7 KiB
Python
42 lines
1.7 KiB
Python
# coding=utf-8
|
|
"""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)
|