1
0
mirror of https://github.com/kevin1024/vcrpy.git synced 2025-12-09 01:03:24 +00:00

pep8 cleanup

This commit is contained in:
Kevin McCarthy
2014-03-08 22:59:10 -10:00
parent 73666bcb49
commit 985e573303
5 changed files with 48 additions and 22 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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))

View File

@@ -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)