mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-10 17:45:35 +00:00
allow injection of persistence methods
This commit is contained in:
@@ -2,13 +2,25 @@ from .persisters.filesystem import FilesystemPersister
|
||||
from .serialize import serialize, deserialize
|
||||
|
||||
|
||||
def load_cassette(cassette_path, serializer):
|
||||
with open(cassette_path) as f:
|
||||
cassette_content = f.read()
|
||||
cassette = deserialize(cassette_content, serializer)
|
||||
return cassette
|
||||
def load_cassette(cassette_path, serializer, load_callback=None):
|
||||
# Injected `load_callback` must return a cassette or raise IOError
|
||||
if load_callback is None:
|
||||
with open(cassette_path) as f:
|
||||
cassette_content = f.read()
|
||||
else:
|
||||
cassette_content = load_callback(cassette_path)
|
||||
cassette = deserialize(cassette_content, serializer)
|
||||
return cassette
|
||||
|
||||
|
||||
def save_cassette(cassette_path, cassette_dict, serializer):
|
||||
def save_cassette(
|
||||
cassette_path,
|
||||
cassette_dict,
|
||||
serializer,
|
||||
save_callback=None
|
||||
):
|
||||
data = serialize(cassette_dict, serializer)
|
||||
FilesystemPersister.write(cassette_path, data)
|
||||
if save_callback is None:
|
||||
FilesystemPersister.write(cassette_path, data)
|
||||
else:
|
||||
save_callback(cassette_path, data)
|
||||
|
||||
Reference in New Issue
Block a user