summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/isolated/green_ssl_pythonhttpsverify.py34
-rw-r--r--tests/ssl_test.py7
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'})