mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 17:15:35 +00:00
Make Serializers Dumber
Let's have the serializer just worry about serializing the dict that we hand it, and move the unicode stuff up to a serialize module. This should hopefully let us move toward using a version string in cassettes.
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
from vcr.request import Request
|
||||
from . import compat
|
||||
try:
|
||||
import simplejson as json
|
||||
except ImportError:
|
||||
@@ -7,26 +5,16 @@ except ImportError:
|
||||
|
||||
|
||||
def deserialize(cassette_string):
|
||||
data = json.loads(cassette_string)
|
||||
requests = [Request._from_dict(r['request']) for r in data]
|
||||
responses = [compat.convert_to_bytes(r['response']) for r in data]
|
||||
return requests, responses
|
||||
return json.loads(cassette_string)
|
||||
|
||||
|
||||
def serialize(cassette_dict):
|
||||
data = ([{
|
||||
'request': request._to_dict(),
|
||||
'response': compat.convert_to_unicode(response),
|
||||
} for request, response in zip(
|
||||
cassette_dict['requests'],
|
||||
cassette_dict['responses']
|
||||
)])
|
||||
try:
|
||||
return json.dumps(data, indent=4)
|
||||
return json.dumps(cassette_dict, indent=4)
|
||||
except UnicodeDecodeError:
|
||||
raise UnicodeDecodeError(
|
||||
"Error serializing cassette to JSON. ",
|
||||
"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) for ",
|
||||
"this request"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user