summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <bertjw@regeer.org>2018-08-31 20:59:15 -0600
committerBert JW Regeer <bertjw@regeer.org>2018-08-31 20:59:15 -0600
commitfb7dfe9633028db5b2f7dca7a193d3e36ba393e4 (patch)
treec7b34eb208d548166ded94d2d03f0605458cd07e
parentfa2d2e09e08ff8f33a90ba3abc095e5604d1f696 (diff)
downloadwaitress-fb7dfe9633028db5b2f7dca7a193d3e36ba393e4.tar.gz
Add test for 304 Not Modified
-rw-r--r--waitress/tests/test_task.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/waitress/tests/test_task.py b/waitress/tests/test_task.py
index 15885eb..7829ea1 100644
--- a/waitress/tests/test_task.py
+++ b/waitress/tests/test_task.py
@@ -245,6 +245,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_304_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, 204 or 304.
+ inst = self._makeOne()
+ inst.request = DummyParser()
+ inst.version = '1.1'
+ inst.status = '304 Not Modified'
+ result = inst.build_response_header()
+ lines = filter_lines(result)
+ self.assertEqual(len(lines), 4)
+ self.assertEqual(lines[0], b'HTTP/1.1 304 Not Modified')
+ 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()