diff options
author | Alexander Lukanin <alexander.lukanin.13@gmail.com> | 2017-08-17 14:49:59 +0500 |
---|---|---|
committer | Alexander Lukanin <alexander.lukanin.13@gmail.com> | 2017-08-17 14:49:59 +0500 |
commit | 72fc6d8e6417c34c2f86e9d9cc0ab954fbe36b51 (patch) | |
tree | 78e850f06772bc3c615579d5ea1555646c5069b4 | |
parent | bbf2634d558ad2c80878aa3265647af55469c8ce (diff) | |
download | waitress-72fc6d8e6417c34c2f86e9d9cc0ab954fbe36b51.tar.gz |
Test for HTTP 100 without Content-Length
-rw-r--r-- | waitress/tests/test_task.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/waitress/tests/test_task.py b/waitress/tests/test_task.py index 283d286..656cf7b 100644 --- a/waitress/tests/test_task.py +++ b/waitress/tests/test_task.py @@ -219,6 +219,23 @@ class TestTask(unittest.TestCase): self.assertEqual(inst.close_on_finish, True) self.assertTrue(('Connection', 'close') in inst.response_headers) + def test_build_response_header_v11_1xx_no_content_length_or_transfer_encoding(self): + # RFC 7230: MUST NOT send Transfer-Encoding or Content-Length + # for any response with a status code of 1xx or 204. + inst = self._makeOne() + inst.request = DummyParser() + inst.version = '1.1' + inst.status = '100 Continue' + result = inst.build_response_header() + lines = filter_lines(result) + self.assertEqual(len(lines), 4) + self.assertEqual(lines[0], b'HTTP/1.1 100 Continue') + self.assertEqual(lines[1], b'Connection: close') + self.assertTrue(lines[2].startswith(b'Date:')) + self.assertEqual(lines[3], b'Server: waitress') + self.assertEqual(inst.close_on_finish, True) + self.assertTrue(('Connection', 'close') in inst.response_headers) + def test_build_response_header_via_added(self): inst = self._makeOne() inst.request = DummyParser() |