diff options
author | Cory Benfield <lukasaoz@gmail.com> | 2015-04-28 18:17:34 +0100 |
---|---|---|
committer | Cory Benfield <lukasaoz@gmail.com> | 2015-04-28 18:17:34 +0100 |
commit | 697362076d23983744602d8682f6fc6b10188e80 (patch) | |
tree | 0838dfa11564c668ffa108d27b415db586fde391 | |
parent | 1bc3d2003ffbe3464a96a47a6a2ce3e18e8cc593 (diff) | |
download | urllib3-697362076d23983744602d8682f6fc6b10188e80.tar.gz |
Add tests for HEAD methods
-rw-r--r-- | test/with_dummyserver/test_socketlevel.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/with_dummyserver/test_socketlevel.py b/test/with_dummyserver/test_socketlevel.py index 9872249e..6c996538 100644 --- a/test/with_dummyserver/test_socketlevel.py +++ b/test/with_dummyserver/test_socketlevel.py @@ -616,3 +616,33 @@ class TestHeaders(SocketDummyServerTestCase): HEADERS = {'Content-Length': '0', 'Content-type': 'text/plain'} r = pool.request('GET', '/') self.assertEqual(HEADERS, dict(r.headers.items())) # to preserve case sensitivity + + +class TestHEAD(SocketDummyServerTestCase): + def test_chunked_head_response_does_not_hang(self): + handler = create_response_handler( + b'HTTP/1.1 200 OK\r\n' + b'Transfer-Encoding: chunked\r\n' + b'Content-type: text/plain\r\n' + b'\r\n' + ) + self._start_server(handler) + pool = HTTPConnectionPool(self.host, self.port, retries=False) + r = pool.request('HEAD', '/', timeout=1, preload_content=False) + + # stream will use the read_chunked method here. + self.assertEqual([], list(r.stream())) + + def test_empty_head_response_does_not_hang(self): + handler = create_response_handler( + b'HTTP/1.1 200 OK\r\n' + b'Content-Length: 256\r\n' + b'Content-type: text/plain\r\n' + b'\r\n' + ) + self._start_server(handler) + pool = HTTPConnectionPool(self.host, self.port, retries=False) + r = pool.request('HEAD', '/', timeout=1, preload_content=False) + + # stream will use the read method here. + self.assertEqual([], list(r.stream())) |