From 627ef5667b2e29c103f4092bebd877cac6ba33e6 Mon Sep 17 00:00:00 2001 From: Noah Levitt Date: Wed, 22 Nov 2017 12:49:46 -0800 Subject: [PATCH] failing test for correct handling of "http.client.RemoteDisconnected: Remote end closed connection without response" from remote server --- setup.py | 2 +- tests/test_warcprox.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 12ea7f6..0327f2c 100755 --- a/setup.py +++ b/setup.py @@ -51,7 +51,7 @@ except: setuptools.setup( name='warcprox', - version='2.2.1b2.dev120', + version='2.2.1b2.dev121', description='WARC writing MITM HTTP/S proxy', url='https://github.com/internetarchive/warcprox', author='Noah Levitt', diff --git a/tests/test_warcprox.py b/tests/test_warcprox.py index 97e4351..9e46209 100755 --- a/tests/test_warcprox.py +++ b/tests/test_warcprox.py @@ -237,6 +237,9 @@ class _TestHttpRequestHandler(http_server.BaseHTTPRequestHandler): raise Exception('bad path') headers = b'HTTP/1.1 200 OK\r\n' + actual_headers + b'\r\n' logging.info('headers=%r payload=%r', headers, payload) + elif self.path == '/empty-response': + headers = b'' + payload = b'' else: payload = b'404 Not Found\n' headers = (b'HTTP/1.1 404 Not Found\r\n' @@ -1643,6 +1646,18 @@ def test_long_warcprox_meta( with pytest.raises(StopIteration): next(rec_iter) +def test_empty_response( + warcprox_, http_daemon, https_daemon, archiving_proxies, + playback_proxies): + + url = 'http://localhost:%s/empty-response' % http_daemon.server_port + response = requests.get(url, proxies=archiving_proxies, verify=False) + assert response.status_code == 500 + + url = 'https://localhost:%s/empty-response' % http_daemon.server_port + response = requests.get(url, proxies=archiving_proxies, verify=False) + assert response.status_code == 500 + def test_payload_digest(warcprox_, http_daemon): ''' Tests that digest is of RFC2616 "entity body"