Fix HTTPretty on Python 3.7
This is a revised backport of
5776d97da3
and the following fixup https://github.com/gabrielfalcao/HTTPretty/pull/341
This commit is contained in:
parent
9c6e7f2ee7
commit
354d48fb8d
@ -85,6 +85,7 @@ old_socksocket = None
|
|||||||
old_ssl_wrap_socket = None
|
old_ssl_wrap_socket = None
|
||||||
old_sslwrap_simple = None
|
old_sslwrap_simple = None
|
||||||
old_sslsocket = None
|
old_sslsocket = None
|
||||||
|
old_sslcontext_wrap_socket = None
|
||||||
|
|
||||||
if PY3: # pragma: no cover
|
if PY3: # pragma: no cover
|
||||||
basestring = (bytes, str)
|
basestring = (bytes, str)
|
||||||
@ -100,6 +101,10 @@ try: # pragma: no cover
|
|||||||
if not PY3:
|
if not PY3:
|
||||||
old_sslwrap_simple = ssl.sslwrap_simple
|
old_sslwrap_simple = ssl.sslwrap_simple
|
||||||
old_sslsocket = ssl.SSLSocket
|
old_sslsocket = ssl.SSLSocket
|
||||||
|
try:
|
||||||
|
old_sslcontext_wrap_socket = ssl.SSLContext.wrap_socket
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
except ImportError: # pragma: no cover
|
except ImportError: # pragma: no cover
|
||||||
ssl = None
|
ssl = None
|
||||||
|
|
||||||
@ -281,7 +286,7 @@ class fakesock(object):
|
|||||||
return {
|
return {
|
||||||
'notAfter': shift.strftime('%b %d %H:%M:%S GMT'),
|
'notAfter': shift.strftime('%b %d %H:%M:%S GMT'),
|
||||||
'subjectAltName': (
|
'subjectAltName': (
|
||||||
('DNS', '*%s' % self._host),
|
('DNS', '*.%s' % self._host),
|
||||||
('DNS', self._host),
|
('DNS', self._host),
|
||||||
('DNS', '*'),
|
('DNS', '*'),
|
||||||
),
|
),
|
||||||
@ -772,7 +777,7 @@ class URIMatcher(object):
|
|||||||
|
|
||||||
def __init__(self, uri, entries, match_querystring=False):
|
def __init__(self, uri, entries, match_querystring=False):
|
||||||
self._match_querystring = match_querystring
|
self._match_querystring = match_querystring
|
||||||
if type(uri).__name__ == 'SRE_Pattern':
|
if type(uri).__name__ in ('SRE_Pattern', 'Pattern'):
|
||||||
self.regex = uri
|
self.regex = uri
|
||||||
result = urlsplit(uri.pattern)
|
result = urlsplit(uri.pattern)
|
||||||
if result.scheme == 'https':
|
if result.scheme == 'https':
|
||||||
@ -1012,6 +1017,10 @@ class httpretty(HttpBaseClass):
|
|||||||
if ssl:
|
if ssl:
|
||||||
ssl.wrap_socket = old_ssl_wrap_socket
|
ssl.wrap_socket = old_ssl_wrap_socket
|
||||||
ssl.SSLSocket = old_sslsocket
|
ssl.SSLSocket = old_sslsocket
|
||||||
|
try:
|
||||||
|
ssl.SSLContext.wrap_socket = old_sslcontext_wrap_socket
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
ssl.__dict__['wrap_socket'] = old_ssl_wrap_socket
|
ssl.__dict__['wrap_socket'] = old_ssl_wrap_socket
|
||||||
ssl.__dict__['SSLSocket'] = old_sslsocket
|
ssl.__dict__['SSLSocket'] = old_sslsocket
|
||||||
|
|
||||||
@ -1058,6 +1067,14 @@ class httpretty(HttpBaseClass):
|
|||||||
ssl.wrap_socket = fake_wrap_socket
|
ssl.wrap_socket = fake_wrap_socket
|
||||||
ssl.SSLSocket = FakeSSLSocket
|
ssl.SSLSocket = FakeSSLSocket
|
||||||
|
|
||||||
|
try:
|
||||||
|
def fake_sslcontext_wrap_socket(cls, *args, **kwargs):
|
||||||
|
return fake_wrap_socket(*args, **kwargs)
|
||||||
|
|
||||||
|
ssl.SSLContext.wrap_socket = fake_sslcontext_wrap_socket
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
|
|
||||||
ssl.__dict__['wrap_socket'] = fake_wrap_socket
|
ssl.__dict__['wrap_socket'] = fake_wrap_socket
|
||||||
ssl.__dict__['SSLSocket'] = FakeSSLSocket
|
ssl.__dict__['SSLSocket'] = FakeSSLSocket
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user