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_sslwrap_simple = None
|
||||
old_sslsocket = None
|
||||
old_sslcontext_wrap_socket = None
|
||||
|
||||
if PY3: # pragma: no cover
|
||||
basestring = (bytes, str)
|
||||
@ -100,6 +101,10 @@ try: # pragma: no cover
|
||||
if not PY3:
|
||||
old_sslwrap_simple = ssl.sslwrap_simple
|
||||
old_sslsocket = ssl.SSLSocket
|
||||
try:
|
||||
old_sslcontext_wrap_socket = ssl.SSLContext.wrap_socket
|
||||
except AttributeError:
|
||||
pass
|
||||
except ImportError: # pragma: no cover
|
||||
ssl = None
|
||||
|
||||
@ -281,7 +286,7 @@ class fakesock(object):
|
||||
return {
|
||||
'notAfter': shift.strftime('%b %d %H:%M:%S GMT'),
|
||||
'subjectAltName': (
|
||||
('DNS', '*%s' % self._host),
|
||||
('DNS', '*.%s' % self._host),
|
||||
('DNS', self._host),
|
||||
('DNS', '*'),
|
||||
),
|
||||
@ -772,7 +777,7 @@ class URIMatcher(object):
|
||||
|
||||
def __init__(self, uri, entries, match_querystring=False):
|
||||
self._match_querystring = match_querystring
|
||||
if type(uri).__name__ == 'SRE_Pattern':
|
||||
if type(uri).__name__ in ('SRE_Pattern', 'Pattern'):
|
||||
self.regex = uri
|
||||
result = urlsplit(uri.pattern)
|
||||
if result.scheme == 'https':
|
||||
@ -1012,6 +1017,10 @@ class httpretty(HttpBaseClass):
|
||||
if ssl:
|
||||
ssl.wrap_socket = old_ssl_wrap_socket
|
||||
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__['SSLSocket'] = old_sslsocket
|
||||
|
||||
@ -1058,6 +1067,14 @@ class httpretty(HttpBaseClass):
|
||||
ssl.wrap_socket = fake_wrap_socket
|
||||
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__['SSLSocket'] = FakeSSLSocket
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user