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

Adding json serializer

This commit is contained in:
shu zOMG chen
2013-08-18 21:43:14 -10:00
committed by Kevin McCarthy
parent 3e247a2efb
commit 51f0f1bacd
10 changed files with 134 additions and 55 deletions

View File

@@ -15,19 +15,15 @@ from .persist import load_cassette, save_cassette
class Cassette(object):
'''A container for recorded requests and responses'''
@classmethod
def load(cls, path):
def load(cls, path, **kwargs):
'''Load in the cassette stored at the provided path'''
new_cassette = cls(path)
try:
requests, responses = load_cassette(path)
for request, response in zip(requests, responses):
new_cassette.append(request, response)
except IOError:
pass
new_cassette = cls(path, **kwargs)
new_cassette._load()
return new_cassette
def __init__(self, path):
def __init__(self, path, serializer="yaml"):
self._path = path
self._serializer = serializer
self.data = OrderedDict()
self.play_counts = Counter()
@@ -58,7 +54,15 @@ class Cassette(object):
return self.data[request]
def _save(self):
save_cassette(self._path, self.requests, self.responses)
save_cassette(self._path, self.requests, self.responses, serializer=self._serializer)
def _load(self):
try:
requests, responses = load_cassette(self._path, serializer=self._serializer)
for request, response in zip(requests, responses):
self.append(request, response)
except IOError:
pass
def __str__(self):
return "<Cassette containing {0} recorded response(s)>".format(len(self))