mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
# .. _persister_example:
|
|
|
|
from pathlib import Path
|
|
|
|
from ..serialize import deserialize, serialize
|
|
|
|
|
|
class FilesystemPersister:
|
|
@classmethod
|
|
def load_cassette(cls, cassette_path, serializer):
|
|
cassette_path = Path(cassette_path) # if cassette path is already Path this is no operation
|
|
if not cassette_path.is_file():
|
|
raise ValueError("Cassette not found.")
|
|
try:
|
|
with cassette_path.open() as f:
|
|
data = f.read()
|
|
except UnicodeEncodeError as err:
|
|
raise ValueError("Can't read Cassette, Encoding is broken") from err
|
|
|
|
return deserialize(data, serializer)
|
|
|
|
@staticmethod
|
|
def save_cassette(cassette_path, cassette_dict, serializer):
|
|
data = serialize(cassette_dict, serializer)
|
|
cassette_path = Path(cassette_path) # if cassette path is already Path this is no operation
|
|
|
|
cassette_folder = cassette_path.parent
|
|
if not cassette_folder.exists():
|
|
cassette_folder.mkdir(parents=True)
|
|
|
|
with cassette_path.open("w") as f:
|
|
f.write(data)
|