mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
pep8
This commit is contained in:
@@ -30,6 +30,7 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
from yaml import Loader
|
from yaml import Loader
|
||||||
|
|
||||||
|
|
||||||
def preprocess_yaml(cassette):
|
def preprocess_yaml(cassette):
|
||||||
# this is the hack that makes the whole thing work. The old version used
|
# this is the hack that makes the whole thing work. The old version used
|
||||||
# to deserialize to Request objects automatically using pyYaml's !!python
|
# to deserialize to Request objects automatically using pyYaml's !!python
|
||||||
@@ -74,16 +75,21 @@ def _migrate(data):
|
|||||||
for k in headers:
|
for k in headers:
|
||||||
headers[k] = [headers[k]]
|
headers[k] = [headers[k]]
|
||||||
response_headers = {}
|
response_headers = {}
|
||||||
for k, v in get_httpmessage(b"".join(h.encode('utf-8') for h in res['headers'])).items():
|
for k, v in get_httpmessage(
|
||||||
|
b"".join(h.encode('utf-8') for h in res['headers'])
|
||||||
|
).items():
|
||||||
response_headers.setdefault(k, [])
|
response_headers.setdefault(k, [])
|
||||||
response_headers[k].append(v)
|
response_headers[k].append(v)
|
||||||
res['headers'] = response_headers
|
res['headers'] = response_headers
|
||||||
interactions.append({'request':req, 'response': res})
|
interactions.append({'request': req, 'response': res})
|
||||||
return {
|
return {
|
||||||
'requests': [request.Request._from_dict(i['request']) for i in interactions],
|
'requests': [
|
||||||
'responses': [i['response'] for i in interactions],
|
request.Request._from_dict(i['request']) for i in interactions
|
||||||
|
],
|
||||||
|
'responses': [i['response'] for i in interactions],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def migrate_json(in_fp, out_fp):
|
def migrate_json(in_fp, out_fp):
|
||||||
data = json.load(in_fp)
|
data = json.load(in_fp)
|
||||||
if _already_migrated(data):
|
if _already_migrated(data):
|
||||||
@@ -96,9 +102,10 @@ def migrate_json(in_fp, out_fp):
|
|||||||
def _list_of_tuples_to_dict(fs):
|
def _list_of_tuples_to_dict(fs):
|
||||||
return dict((k, v) for k, v in fs[0])
|
return dict((k, v) for k, v in fs[0])
|
||||||
|
|
||||||
|
|
||||||
def _already_migrated(data):
|
def _already_migrated(data):
|
||||||
try:
|
try:
|
||||||
if data.get('version')==1:
|
if data.get('version') == 1:
|
||||||
return True
|
return True
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
return False
|
return False
|
||||||
@@ -109,7 +116,9 @@ def migrate_yml(in_fp, out_fp):
|
|||||||
if _already_migrated(data):
|
if _already_migrated(data):
|
||||||
return False
|
return False
|
||||||
for i in range(len(data)):
|
for i in range(len(data)):
|
||||||
data[i]['request']['headers'] = _list_of_tuples_to_dict(data[i]['request']['headers'])
|
data[i]['request']['headers'] = _list_of_tuples_to_dict(
|
||||||
|
data[i]['request']['headers']
|
||||||
|
)
|
||||||
interactions = _migrate(data)
|
interactions = _migrate(data)
|
||||||
out_fp.write(serialize(interactions, yamlserializer))
|
out_fp.write(serialize(interactions, yamlserializer))
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ from .persisters.filesystem import FilesystemPersister
|
|||||||
from .serialize import serialize, deserialize
|
from .serialize import serialize, deserialize
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def load_cassette(cassette_path, serializer):
|
def load_cassette(cassette_path, serializer):
|
||||||
with open(cassette_path) as f:
|
with open(cassette_path) as f:
|
||||||
cassette_content = f.read()
|
cassette_content = f.read()
|
||||||
|
|||||||
@@ -2,8 +2,9 @@ from vcr.serializers import compat
|
|||||||
from vcr.request import Request
|
from vcr.request import Request
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
#version 1 cassettes started with VCR 1.0.x. Before 1.0.x, there was no versioning.
|
# version 1 cassettes started with VCR 1.0.x.
|
||||||
CASSETTE_FORMAT_VERSION = 1
|
# Before 1.0.x, there was no versioning.
|
||||||
|
CASSETTE_FORMAT_VERSION = 1
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Just a general note on the serialization philosophy here:
|
Just a general note on the serialization philosophy here:
|
||||||
@@ -17,9 +18,11 @@ 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 _looks_like_an_old_cassette(data):
|
def _looks_like_an_old_cassette(data):
|
||||||
return isinstance(data, list) and len(data) and 'request' in data[0]
|
return isinstance(data, list) and len(data) and 'request' in data[0]
|
||||||
|
|
||||||
|
|
||||||
def _warn_about_old_cassette_format():
|
def _warn_about_old_cassette_format():
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
"Your cassette files were generated in an older version "
|
"Your cassette files were generated in an older version "
|
||||||
@@ -27,6 +30,7 @@ def _warn_about_old_cassette_format():
|
|||||||
"See http://git.io/mHhLBg for more details."
|
"See http://git.io/mHhLBg for more details."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def deserialize(cassette_string, serializer):
|
def deserialize(cassette_string, serializer):
|
||||||
try:
|
try:
|
||||||
data = serializer.deserialize(cassette_string)
|
data = serializer.deserialize(cassette_string)
|
||||||
@@ -38,7 +42,9 @@ def deserialize(cassette_string, serializer):
|
|||||||
_warn_about_old_cassette_format()
|
_warn_about_old_cassette_format()
|
||||||
|
|
||||||
requests = [Request._from_dict(r['request']) for r in data['interactions']]
|
requests = [Request._from_dict(r['request']) for r in data['interactions']]
|
||||||
responses = [compat.convert_to_bytes(r['response']) for r in data['interactions']]
|
responses = [
|
||||||
|
compat.convert_to_bytes(r['response']) for r in data['interactions']
|
||||||
|
]
|
||||||
return requests, responses
|
return requests, responses
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,6 @@ def serialize(cassette_dict):
|
|||||||
raise UnicodeDecodeError(
|
raise UnicodeDecodeError(
|
||||||
"Error serializing cassette to JSON. ",
|
"Error serializing cassette to JSON. ",
|
||||||
"Does this HTTP interaction contain binary data? ",
|
"Does this HTTP interaction contain binary data? ",
|
||||||
"If so, use a different serializer (like the yaml serializer) for ",
|
"If so, use a different serializer (like the yaml serializer) ",
|
||||||
"this request"
|
"for this request"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
from yaml import Loader, Dumper
|
from yaml import Loader, Dumper
|
||||||
|
|
||||||
|
|
||||||
def deserialize(cassette_string):
|
def deserialize(cassette_string):
|
||||||
return yaml.load(cassette_string, Loader=Loader)
|
return yaml.load(cassette_string, Loader=Loader)
|
||||||
|
|
||||||
|
|||||||
@@ -50,9 +50,11 @@ def parse_headers(header_list):
|
|||||||
header_string = b""
|
header_string = b""
|
||||||
for key, values in header_list.items():
|
for key, values in header_list.items():
|
||||||
for v in values:
|
for v in values:
|
||||||
header_string += key.encode('utf-8') + b":" + v.encode('utf-8') + b"\r\n"
|
header_string += \
|
||||||
|
key.encode('utf-8') + b":" + v.encode('utf-8') + b"\r\n"
|
||||||
return compat.get_httpmessage(header_string)
|
return compat.get_httpmessage(header_string)
|
||||||
|
|
||||||
|
|
||||||
def serialize_headers(response):
|
def serialize_headers(response):
|
||||||
out = {}
|
out = {}
|
||||||
for key, values in compat.get_headers(response):
|
for key, values in compat.get_headers(response):
|
||||||
|
|||||||
Reference in New Issue
Block a user