diff options
| author | Claude Paroz <claude@2xlibre.net> | 2016-06-18 10:51:38 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2016-06-27 10:44:57 +0200 |
| commit | 9588718cd404d73b2be09241b424b539d8d8c66e (patch) | |
| tree | 3ad0f2054fb540fd92ce9ae0125ed70e19eee2e8 /tests | |
| parent | ca77b509059831b055a3b735ff77e042f8e1c0eb (diff) | |
Fixed #5897 -- Added the Content-Length response header in CommonMiddleware
Thanks Tim Graham for the review.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/middleware/tests.py | 24 | ||||
| -rw-r--r-- | tests/project_template/test_settings.py | 1 | ||||
| -rw-r--r-- | tests/wsgi/tests.py | 11 |
3 files changed, 31 insertions, 5 deletions
diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py index f87bb9d71c..f9ef951b44 100644 --- a/tests/middleware/tests.py +++ b/tests/middleware/tests.py @@ -285,6 +285,27 @@ class CommonMiddlewareTest(SimpleTestCase): second_res = CommonMiddleware().process_response(second_req, HttpResponse('content')) self.assertEqual(second_res.status_code, 304) + # Tests for the Content-Length header + + def test_content_length_header_added(self): + response = HttpResponse('content') + self.assertNotIn('Content-Length', response) + response = CommonMiddleware().process_response(HttpRequest(), response) + self.assertEqual(int(response['Content-Length']), len(response.content)) + + def test_content_length_header_not_added_for_streaming_response(self): + response = StreamingHttpResponse('content') + self.assertNotIn('Content-Length', response) + response = CommonMiddleware().process_response(HttpRequest(), response) + self.assertNotIn('Content-Length', response) + + def test_content_length_header_not_changed(self): + response = HttpResponse() + bad_content_length = len(response.content) + 10 + response['Content-Length'] = bad_content_length + response = CommonMiddleware().process_response(HttpRequest(), response) + self.assertEqual(int(response['Content-Length']), bad_content_length) + # Other tests @override_settings(DISALLOWED_USER_AGENTS=[re.compile(r'foo')]) @@ -445,6 +466,9 @@ class ConditionalGetMiddlewareTest(SimpleTestCase): def test_content_length_header_added(self): content_length = len(self.resp.content) + # Already set by CommonMiddleware, remove it to check that + # ConditionalGetMiddleware readds it. + del self.resp['Content-Length'] self.assertNotIn('Content-Length', self.resp) self.resp = ConditionalGetMiddleware().process_response(self.req, self.resp) self.assertIn('Content-Length', self.resp) diff --git a/tests/project_template/test_settings.py b/tests/project_template/test_settings.py index d153c4d95f..a0047dd836 100644 --- a/tests/project_template/test_settings.py +++ b/tests/project_template/test_settings.py @@ -41,6 +41,7 @@ class TestStartProjectSettings(TestCase): response = self.client.get('/empty/') headers = sorted(response.serialize_headers().split(b'\r\n')) self.assertEqual(headers, [ + b'Content-Length: 0', b'Content-Type: text/html; charset=utf-8', b'X-Frame-Options: SAMEORIGIN', ]) diff --git a/tests/wsgi/tests.py b/tests/wsgi/tests.py index f472d4fab9..03ac7ee706 100644 --- a/tests/wsgi/tests.py +++ b/tests/wsgi/tests.py @@ -41,11 +41,12 @@ class WSGITest(SimpleTestCase): self.assertEqual(response_data["status"], "200 OK") self.assertEqual( - response_data["headers"], - [('Content-Type', 'text/html; charset=utf-8')]) - self.assertEqual( - bytes(response), - b"Content-Type: text/html; charset=utf-8\r\n\r\nHello World!") + set(response_data["headers"]), + {('Content-Length', '12'), ('Content-Type', 'text/html; charset=utf-8')}) + self.assertTrue(bytes(response) in [ + b"Content-Length: 12\r\nContent-Type: text/html; charset=utf-8\r\n\r\nHello World!", + b"Content-Type: text/html; charset=utf-8\r\nContent-Length: 12\r\n\r\nHello World!" + ]) def test_file_wrapper(self): """ |
