diff options
| -rw-r--r-- | tests/isolated/green_ssl_pythonhttpsverify.py | 34 | ||||
| -rw-r--r-- | tests/ssl_test.py | 7 |
2 files changed, 39 insertions, 2 deletions
diff --git a/tests/isolated/green_ssl_pythonhttpsverify.py b/tests/isolated/green_ssl_pythonhttpsverify.py new file mode 100644 index 0000000..cfb84aa --- /dev/null +++ b/tests/isolated/green_ssl_pythonhttpsverify.py @@ -0,0 +1,34 @@ +__test__ = False + +if __name__ == '__main__': + import os + assert os.environ.get('PYTHONHTTPSVERIFY', '') == '0' + + import eventlet + from eventlet.green import socket, ssl, httplib + import tests + sock = ssl.wrap_socket( + socket.socket(), + tests.private_key_file, + tests.certificate_file, + server_side=True, + ) + sock.bind(('localhost', 0)) + sock.listen(2) + + @eventlet.spawn + def https_server(): + client, _ = sock.accept() + client.read() + client.sendall(b'HTTP/1.0 204 OK BUT NO THANKS\r\n\r\n') + eventlet.sleep(0.1) + client.shutdown(socket.SHUT_RDWR) + + sa = sock.getsockname() + conn = httplib.HTTPSConnection(sa[0], sa[1], timeout=0.5) + conn.request('GET', '/') + r = conn.getresponse() + r.read() + assert r.status == '204 OK BUT NO THANKS' + + print('pass') diff --git a/tests/ssl_test.py b/tests/ssl_test.py index d3e3780..42c3552 100644 --- a/tests/ssl_test.py +++ b/tests/ssl_test.py @@ -1,5 +1,3 @@ -import contextlib -import socket import warnings import eventlet @@ -325,3 +323,8 @@ class SSLTest(tests.LimitedTestCase): server_to_client.close() listener.close() + + +def test_pythonhttpsverify(): + # https://github.com/eventlet/eventlet/pull/485 + tests.run_isolated('green_ssl_pythonhttpsverify.py', env={'PYTHONHTTPSVERIFY': '0'}) |
