mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
pep8 cleanup
This commit is contained in:
@@ -1,15 +1,18 @@
|
|||||||
import six
|
import six
|
||||||
|
|
||||||
|
|
||||||
def convert_to_bytes(resp):
|
def convert_to_bytes(resp):
|
||||||
resp = convert_headers_to_bytes(resp)
|
resp = convert_headers_to_bytes(resp)
|
||||||
resp = convert_body_to_bytes(resp)
|
resp = convert_body_to_bytes(resp)
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
def convert_to_unicode(resp):
|
def convert_to_unicode(resp):
|
||||||
resp = convert_headers_to_unicode(resp)
|
resp = convert_headers_to_unicode(resp)
|
||||||
resp = convert_body_to_unicode(resp)
|
resp = convert_body_to_unicode(resp)
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
def convert_headers_to_bytes(resp):
|
def convert_headers_to_bytes(resp):
|
||||||
try:
|
try:
|
||||||
resp['headers'] = [h.encode('utf-8') for h in resp['headers']]
|
resp['headers'] = [h.encode('utf-8') for h in resp['headers']]
|
||||||
@@ -17,6 +20,7 @@ def convert_headers_to_bytes(resp):
|
|||||||
pass
|
pass
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
def convert_headers_to_unicode(resp):
|
def convert_headers_to_unicode(resp):
|
||||||
try:
|
try:
|
||||||
resp['headers'] = [h.decode('utf-8') for h in resp['headers']]
|
resp['headers'] = [h.decode('utf-8') for h in resp['headers']]
|
||||||
@@ -24,6 +28,7 @@ def convert_headers_to_unicode(resp):
|
|||||||
pass
|
pass
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
def convert_body_to_bytes(resp):
|
def convert_body_to_bytes(resp):
|
||||||
"""
|
"""
|
||||||
If the request body is a string, encode it to bytes (for python3 support)
|
If the request body is a string, encode it to bytes (for python3 support)
|
||||||
@@ -33,21 +38,23 @@ def convert_body_to_bytes(resp):
|
|||||||
into unicode strings. This makes sure that it stays a bytestring, since
|
into unicode strings. This makes sure that it stays a bytestring, since
|
||||||
that's what all the internal httplib machinery is expecting.
|
that's what all the internal httplib machinery is expecting.
|
||||||
|
|
||||||
For more info on py3 yaml: http://pyyaml.org/wiki/PyYAMLDocumentation#Python3support
|
For more info on py3 yaml:
|
||||||
|
http://pyyaml.org/wiki/PyYAMLDocumentation#Python3support
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
if not isinstance(resp['body']['string'], six.binary_type):
|
if not isinstance(resp['body']['string'], six.binary_type):
|
||||||
resp['body']['string'] = resp['body']['string'].encode('utf-8')
|
resp['body']['string'] = resp['body']['string'].encode('utf-8')
|
||||||
except (KeyError, TypeError, UnicodeEncodeError):
|
except (KeyError, TypeError, UnicodeEncodeError):
|
||||||
# The thing we were converting either wasn't a dictionary or didn't have
|
# The thing we were converting either wasn't a dictionary or didn't
|
||||||
# the keys we were expecting. Some of the tests just serialize and
|
# have the keys we were expecting. Some of the tests just serialize
|
||||||
# deserialize a string.
|
# and deserialize a string.
|
||||||
|
|
||||||
# Also, sometimes the thing actually is binary, so if you can't encode
|
# Also, sometimes the thing actually is binary, so if you can't encode
|
||||||
# it, just give up.
|
# it, just give up.
|
||||||
pass
|
pass
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
def convert_body_to_unicode(resp):
|
def convert_body_to_unicode(resp):
|
||||||
"""
|
"""
|
||||||
If the request body is bytes, decode it to a string (for python3 support)
|
If the request body is bytes, decode it to a string (for python3 support)
|
||||||
@@ -56,11 +63,11 @@ def convert_body_to_unicode(resp):
|
|||||||
if not isinstance(resp['body']['string'], six.text_type):
|
if not isinstance(resp['body']['string'], six.text_type):
|
||||||
resp['body']['string'] = resp['body']['string'].decode('utf-8')
|
resp['body']['string'] = resp['body']['string'].decode('utf-8')
|
||||||
except (KeyError, TypeError, UnicodeDecodeError):
|
except (KeyError, TypeError, UnicodeDecodeError):
|
||||||
# The thing we were converting either wasn't a dictionary or didn't have
|
# The thing we were converting either wasn't a dictionary or didn't
|
||||||
# the keys we were expecting. Some of the tests just serialize and
|
# have the keys we were expecting. Some of the tests just serialize
|
||||||
# deserialize a string.
|
# and deserialize a string.
|
||||||
|
|
||||||
# Also, sometimes the thing actually is binary, so if you can't decode
|
# Also, sometimes the thing actually is binary, so if you can't decode
|
||||||
# it, just give up.
|
# it, just give up.
|
||||||
pass
|
pass
|
||||||
return resp
|
return resp
|
||||||
|
|||||||
@@ -20,9 +20,10 @@ Serializing: bytestring -> string (yaml persists to utf-8)
|
|||||||
Deserializing: string (yaml converts from utf-8) -> bytestring
|
Deserializing: string (yaml converts from utf-8) -> bytestring
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def _restore_frozenset():
|
def _restore_frozenset():
|
||||||
"""
|
"""
|
||||||
Restore __builtin__.frozenset for cassettes serialized in python2 but
|
Restore __builtin__.frozenset for cassettes serialized in python2 but
|
||||||
deserialized in python3 and builtins.frozenset for cassettes serialized
|
deserialized in python3 and builtins.frozenset for cassettes serialized
|
||||||
in python3 and deserialized in python2
|
in python3 and deserialized in python2
|
||||||
"""
|
"""
|
||||||
@@ -34,6 +35,7 @@ def _restore_frozenset():
|
|||||||
if 'builtins' not in sys.modules:
|
if 'builtins' not in sys.modules:
|
||||||
sys.modules['builtins'] = sys.modules['__builtin__']
|
sys.modules['builtins'] = sys.modules['__builtin__']
|
||||||
|
|
||||||
|
|
||||||
def deserialize(cassette_string):
|
def deserialize(cassette_string):
|
||||||
_restore_frozenset()
|
_restore_frozenset()
|
||||||
data = yaml.load(cassette_string, Loader=Loader)
|
data = yaml.load(cassette_string, Loader=Loader)
|
||||||
|
|||||||
@@ -5,7 +5,12 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
import six
|
import six
|
||||||
from six.moves.http_client import HTTPConnection, HTTPSConnection, HTTPMessage, HTTPResponse
|
from six.moves.http_client import (
|
||||||
|
HTTPConnection,
|
||||||
|
HTTPSConnection,
|
||||||
|
HTTPMessage,
|
||||||
|
HTTPResponse,
|
||||||
|
)
|
||||||
from six import BytesIO
|
from six import BytesIO
|
||||||
from vcr.request import Request
|
from vcr.request import Request
|
||||||
from vcr.errors import CannotOverwriteExistingCassetteException
|
from vcr.errors import CannotOverwriteExistingCassetteException
|
||||||
@@ -32,6 +37,7 @@ def parse_headers(header_list):
|
|||||||
headers = b"".join(header_list) + b"\r\n"
|
headers = b"".join(header_list) + b"\r\n"
|
||||||
return compat.get_httpmessage(headers)
|
return compat.get_httpmessage(headers)
|
||||||
|
|
||||||
|
|
||||||
class VCRHTTPResponse(HTTPResponse):
|
class VCRHTTPResponse(HTTPResponse):
|
||||||
"""
|
"""
|
||||||
Stub reponse class that gets returned instead of a HTTPResponse
|
Stub reponse class that gets returned instead of a HTTPResponse
|
||||||
@@ -51,9 +57,9 @@ class VCRHTTPResponse(HTTPResponse):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def closed(self):
|
def closed(self):
|
||||||
# in python3, I can't change the value of self.closed. So I'm twiddling
|
# in python3, I can't change the value of self.closed. So I'
|
||||||
# self._closed and using this property to shadow the real self.closed
|
# twiddling self._closed and using this property to shadow the real
|
||||||
# from the superclass
|
# self.closed from the superclas
|
||||||
return self._closed
|
return self._closed
|
||||||
|
|
||||||
def read(self, *args, **kwargs):
|
def read(self, *args, **kwargs):
|
||||||
@@ -206,8 +212,8 @@ class VCRConnection:
|
|||||||
self.cassette.rewound:
|
self.cassette.rewound:
|
||||||
# We already have a response we are going to play, don't
|
# We already have a response we are going to play, don't
|
||||||
# actually connect
|
# actually connect
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.cassette.write_protected:
|
if self.cassette.write_protected:
|
||||||
# Cassette is write-protected, don't actually connect
|
# Cassette is write-protected, don't actually connect
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ The python3 http.client api moved some stuff around, so this is an abstraction
|
|||||||
layer that tries to cope with this move.
|
layer that tries to cope with this move.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def get_header(message, name):
|
def get_header(message, name):
|
||||||
if six.PY3:
|
if six.PY3:
|
||||||
return message.getallmatchingheaders(name)
|
return message.getallmatchingheaders(name)
|
||||||
@@ -34,6 +35,7 @@ def get_headers(response):
|
|||||||
else:
|
else:
|
||||||
return response.msg.headers
|
return response.msg.headers
|
||||||
|
|
||||||
|
|
||||||
def get_httpmessage(headers):
|
def get_httpmessage(headers):
|
||||||
if six.PY3:
|
if six.PY3:
|
||||||
return http.client.parse_headers(BytesIO(headers))
|
return http.client.parse_headers(BytesIO(headers))
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ class VCRHTTPConnectionWithTimeout(VCRHTTPConnection,
|
|||||||
HTTPConnection.__init__.'''
|
HTTPConnection.__init__.'''
|
||||||
|
|
||||||
# Delete the keyword arguments that HTTPConnection would not recognize
|
# Delete the keyword arguments that HTTPConnection would not recognize
|
||||||
safe_keys = set(('host', 'port', 'strict', 'timeout', 'source_address'))
|
safe_keys = set(
|
||||||
|
('host', 'port', 'strict', 'timeout', 'source_address')
|
||||||
|
)
|
||||||
unknown_keys = set(kwargs.keys()) - safe_keys
|
unknown_keys = set(kwargs.keys()) - safe_keys
|
||||||
safe_kwargs = kwargs.copy()
|
safe_kwargs = kwargs.copy()
|
||||||
for kw in unknown_keys:
|
for kw in unknown_keys:
|
||||||
@@ -31,8 +33,15 @@ class VCRHTTPSConnectionWithTimeout(VCRHTTPSConnection,
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
|
||||||
# Delete the keyword arguments that HTTPSConnection would not recognize
|
# Delete the keyword arguments that HTTPSConnection would not recognize
|
||||||
safe_keys = set(('host', 'port', 'key_file', 'cert_file', 'strict',
|
safe_keys = set((
|
||||||
'timeout', 'source_address'))
|
'host',
|
||||||
|
'port',
|
||||||
|
'key_file',
|
||||||
|
'cert_file',
|
||||||
|
'strict',
|
||||||
|
'timeout',
|
||||||
|
'source_address',
|
||||||
|
))
|
||||||
unknown_keys = set(kwargs.keys()) - safe_keys
|
unknown_keys = set(kwargs.keys()) - safe_keys
|
||||||
safe_kwargs = kwargs.copy()
|
safe_kwargs = kwargs.copy()
|
||||||
for kw in unknown_keys:
|
for kw in unknown_keys:
|
||||||
@@ -46,7 +55,7 @@ class VCRHTTPSConnectionWithTimeout(VCRHTTPSConnection,
|
|||||||
self.ca_certs = None
|
self.ca_certs = None
|
||||||
else:
|
else:
|
||||||
self.ca_certs = kwargs['ca_certs']
|
self.ca_certs = kwargs['ca_certs']
|
||||||
|
|
||||||
self.disable_ssl_certificate_validation = kwargs.pop(
|
self.disable_ssl_certificate_validation = kwargs.pop(
|
||||||
'disable_ssl_certificate_validation', None)
|
'disable_ssl_certificate_validation', None)
|
||||||
VCRHTTPSConnection.__init__(self, *args, **safe_kwargs)
|
VCRHTTPSConnection.__init__(self, *args, **safe_kwargs)
|
||||||
|
|||||||
Reference in New Issue
Block a user