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
|
||||
|
||||
|
||||
def convert_to_bytes(resp):
|
||||
resp = convert_headers_to_bytes(resp)
|
||||
resp = convert_body_to_bytes(resp)
|
||||
return resp
|
||||
|
||||
|
||||
def convert_to_unicode(resp):
|
||||
resp = convert_headers_to_unicode(resp)
|
||||
resp = convert_body_to_unicode(resp)
|
||||
return resp
|
||||
|
||||
|
||||
def convert_headers_to_bytes(resp):
|
||||
try:
|
||||
resp['headers'] = [h.encode('utf-8') for h in resp['headers']]
|
||||
@@ -17,6 +20,7 @@ def convert_headers_to_bytes(resp):
|
||||
pass
|
||||
return resp
|
||||
|
||||
|
||||
def convert_headers_to_unicode(resp):
|
||||
try:
|
||||
resp['headers'] = [h.decode('utf-8') for h in resp['headers']]
|
||||
@@ -24,6 +28,7 @@ def convert_headers_to_unicode(resp):
|
||||
pass
|
||||
return resp
|
||||
|
||||
|
||||
def convert_body_to_bytes(resp):
|
||||
"""
|
||||
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
|
||||
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:
|
||||
if not isinstance(resp['body']['string'], six.binary_type):
|
||||
resp['body']['string'] = resp['body']['string'].encode('utf-8')
|
||||
except (KeyError, TypeError, UnicodeEncodeError):
|
||||
# The thing we were converting either wasn't a dictionary or didn't have
|
||||
# the keys we were expecting. Some of the tests just serialize and
|
||||
# deserialize a string.
|
||||
# The thing we were converting either wasn't a dictionary or didn't
|
||||
# have the keys we were expecting. Some of the tests just serialize
|
||||
# and deserialize a string.
|
||||
|
||||
# Also, sometimes the thing actually is binary, so if you can't encode
|
||||
# it, just give up.
|
||||
# Also, sometimes the thing actually is binary, so if you can't encode
|
||||
# it, just give up.
|
||||
pass
|
||||
return resp
|
||||
|
||||
|
||||
def convert_body_to_unicode(resp):
|
||||
"""
|
||||
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):
|
||||
resp['body']['string'] = resp['body']['string'].decode('utf-8')
|
||||
except (KeyError, TypeError, UnicodeDecodeError):
|
||||
# The thing we were converting either wasn't a dictionary or didn't have
|
||||
# the keys we were expecting. Some of the tests just serialize and
|
||||
# deserialize a string.
|
||||
# The thing we were converting either wasn't a dictionary or didn't
|
||||
# have the keys we were expecting. Some of the tests just serialize
|
||||
# and deserialize a string.
|
||||
|
||||
# Also, sometimes the thing actually is binary, so if you can't decode
|
||||
# it, just give up.
|
||||
# Also, sometimes the thing actually is binary, so if you can't decode
|
||||
# it, just give up.
|
||||
pass
|
||||
return resp
|
||||
|
||||
@@ -20,9 +20,10 @@ Serializing: bytestring -> string (yaml persists to utf-8)
|
||||
Deserializing: string (yaml converts from utf-8) -> bytestring
|
||||
"""
|
||||
|
||||
|
||||
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
|
||||
in python3 and deserialized in python2
|
||||
"""
|
||||
@@ -34,6 +35,7 @@ def _restore_frozenset():
|
||||
if 'builtins' not in sys.modules:
|
||||
sys.modules['builtins'] = sys.modules['__builtin__']
|
||||
|
||||
|
||||
def deserialize(cassette_string):
|
||||
_restore_frozenset()
|
||||
data = yaml.load(cassette_string, Loader=Loader)
|
||||
|
||||
@@ -5,7 +5,12 @@ try:
|
||||
except ImportError:
|
||||
pass
|
||||
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 vcr.request import Request
|
||||
from vcr.errors import CannotOverwriteExistingCassetteException
|
||||
@@ -32,6 +37,7 @@ def parse_headers(header_list):
|
||||
headers = b"".join(header_list) + b"\r\n"
|
||||
return compat.get_httpmessage(headers)
|
||||
|
||||
|
||||
class VCRHTTPResponse(HTTPResponse):
|
||||
"""
|
||||
Stub reponse class that gets returned instead of a HTTPResponse
|
||||
@@ -51,9 +57,9 @@ class VCRHTTPResponse(HTTPResponse):
|
||||
|
||||
@property
|
||||
def closed(self):
|
||||
# in python3, I can't change the value of self.closed. So I'm twiddling
|
||||
# self._closed and using this property to shadow the real self.closed
|
||||
# from the superclass
|
||||
# in python3, I can't change the value of self.closed. So I'
|
||||
# twiddling self._closed and using this property to shadow the real
|
||||
# self.closed from the superclas
|
||||
return self._closed
|
||||
|
||||
def read(self, *args, **kwargs):
|
||||
@@ -206,8 +212,8 @@ class VCRConnection:
|
||||
self.cassette.rewound:
|
||||
# We already have a response we are going to play, don't
|
||||
# actually connect
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
if self.cassette.write_protected:
|
||||
# Cassette is write-protected, don't actually connect
|
||||
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.
|
||||
"""
|
||||
|
||||
|
||||
def get_header(message, name):
|
||||
if six.PY3:
|
||||
return message.getallmatchingheaders(name)
|
||||
@@ -34,6 +35,7 @@ def get_headers(response):
|
||||
else:
|
||||
return response.msg.headers
|
||||
|
||||
|
||||
def get_httpmessage(headers):
|
||||
if six.PY3:
|
||||
return http.client.parse_headers(BytesIO(headers))
|
||||
|
||||
@@ -13,7 +13,9 @@ class VCRHTTPConnectionWithTimeout(VCRHTTPConnection,
|
||||
HTTPConnection.__init__.'''
|
||||
|
||||
# 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
|
||||
safe_kwargs = kwargs.copy()
|
||||
for kw in unknown_keys:
|
||||
@@ -31,8 +33,15 @@ class VCRHTTPSConnectionWithTimeout(VCRHTTPSConnection,
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
# Delete the keyword arguments that HTTPSConnection would not recognize
|
||||
safe_keys = set(('host', 'port', 'key_file', 'cert_file', 'strict',
|
||||
'timeout', 'source_address'))
|
||||
safe_keys = set((
|
||||
'host',
|
||||
'port',
|
||||
'key_file',
|
||||
'cert_file',
|
||||
'strict',
|
||||
'timeout',
|
||||
'source_address',
|
||||
))
|
||||
unknown_keys = set(kwargs.keys()) - safe_keys
|
||||
safe_kwargs = kwargs.copy()
|
||||
for kw in unknown_keys:
|
||||
@@ -46,7 +55,7 @@ class VCRHTTPSConnectionWithTimeout(VCRHTTPSConnection,
|
||||
self.ca_certs = None
|
||||
else:
|
||||
self.ca_certs = kwargs['ca_certs']
|
||||
|
||||
|
||||
self.disable_ssl_certificate_validation = kwargs.pop(
|
||||
'disable_ssl_certificate_validation', None)
|
||||
VCRHTTPSConnection.__init__(self, *args, **safe_kwargs)
|
||||
|
||||
Reference in New Issue
Block a user