summaryrefslogtreecommitdiff
path: root/tests/middleware/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/middleware/tests.py')
-rw-r--r--tests/middleware/tests.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py
index 22e2250e71..2b5b50f9e5 100644
--- a/tests/middleware/tests.py
+++ b/tests/middleware/tests.py
@@ -10,8 +10,8 @@ from unittest import skipIf
from django.conf import settings
from django.core import mail
from django.http import (
- HttpRequest, HttpResponse, StreamingHttpResponse, HttpResponsePermanentRedirect,
- HttpResponseRedirect,
+ HttpRequest, HttpResponse, StreamingHttpResponse, FileResponse,
+ HttpResponseRedirect, HttpResponsePermanentRedirect,
)
from django.middleware.clickjacking import XFrameOptionsMiddleware
from django.middleware.common import CommonMiddleware, BrokenLinkEmailsMiddleware
@@ -624,6 +624,20 @@ class GZipMiddlewareTest(TestCase):
self.assertEqual(r.get('Content-Encoding'), 'gzip')
self.assertFalse(r.has_header('Content-Length'))
+ def test_compress_file_response(self):
+ """
+ Tests that compression is performed on FileResponse.
+ """
+ open_file = lambda: open(__file__, 'rb')
+ with open_file() as file1:
+ file_resp = FileResponse(file1)
+ file_resp['Content-Type'] = 'text/html; charset=UTF-8'
+ r = GZipMiddleware().process_response(self.req, file_resp)
+ with open_file() as file2:
+ self.assertEqual(self.decompress(b''.join(r)), file2.read())
+ self.assertEqual(r.get('Content-Encoding'), 'gzip')
+ self.assertIsNot(r.file_to_stream, file1)
+
def test_compress_non_200_response(self):
"""
Tests that compression is performed on responses with a status other than 200.