mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 09:13:23 +00:00
Add Exception when JSON Serializing Binary Data
Since I can't think of a good way to deal with this, let's just give a nice error message to point people in the right direction. Closes #51
This commit is contained in:
14
tests/unit/test_json_serializer.py
Normal file
14
tests/unit/test_json_serializer.py
Normal file
@@ -0,0 +1,14 @@
|
||||
import pytest
|
||||
from vcr.serializers.jsonserializer import serialize
|
||||
from vcr.request import Request
|
||||
|
||||
|
||||
def test_serialize_binary():
|
||||
request = Request('http','localhost',80,'GET','/',{},{})
|
||||
cassette = {'requests': [request], 'responses': [{'body':b'\x8c'}]}
|
||||
|
||||
with pytest.raises(Exception) as e:
|
||||
serialize(cassette)
|
||||
assert e.message == "Error serializing cassette to JSON. Does this \
|
||||
HTTP interaction contain binary data? If so, use a different \
|
||||
serializer (like the yaml serializer) for this request"
|
||||
@@ -27,4 +27,12 @@ def serialize(cassette_dict):
|
||||
cassette_dict['requests'],
|
||||
cassette_dict['responses']
|
||||
)])
|
||||
return json.dumps(data, indent=4, default=_json_default)
|
||||
try:
|
||||
return json.dumps(data, indent=4, default=_json_default)
|
||||
except UnicodeDecodeError as e:
|
||||
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",
|
||||
"this request"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user