mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
import filecmp
|
|
import json
|
|
import shutil
|
|
|
|
import yaml
|
|
|
|
import vcr.migration
|
|
|
|
# Use the libYAML versions if possible
|
|
try:
|
|
from yaml import CLoader as Loader
|
|
except ImportError:
|
|
from yaml import Loader
|
|
|
|
|
|
def test_try_migrate_with_json(tmpdir):
|
|
cassette = tmpdir.join("cassette.json").strpath
|
|
shutil.copy("tests/fixtures/migration/old_cassette.json", cassette)
|
|
assert vcr.migration.try_migrate(cassette)
|
|
with open("tests/fixtures/migration/new_cassette.json") as f:
|
|
expected_json = json.load(f)
|
|
with open(cassette) as f:
|
|
actual_json = json.load(f)
|
|
assert actual_json == expected_json
|
|
|
|
|
|
def test_try_migrate_with_yaml(tmpdir):
|
|
cassette = tmpdir.join("cassette.yaml").strpath
|
|
shutil.copy("tests/fixtures/migration/old_cassette.yaml", cassette)
|
|
assert vcr.migration.try_migrate(cassette)
|
|
with open("tests/fixtures/migration/new_cassette.yaml") as f:
|
|
expected_yaml = yaml.load(f, Loader=Loader)
|
|
with open(cassette) as f:
|
|
actual_yaml = yaml.load(f, Loader=Loader)
|
|
assert actual_yaml == expected_yaml
|
|
|
|
|
|
def test_try_migrate_with_invalid_or_new_cassettes(tmpdir):
|
|
cassette = tmpdir.join("cassette").strpath
|
|
files = [
|
|
"tests/fixtures/migration/not_cassette.txt",
|
|
"tests/fixtures/migration/new_cassette.yaml",
|
|
"tests/fixtures/migration/new_cassette.json",
|
|
]
|
|
for file_path in files:
|
|
shutil.copy(file_path, cassette)
|
|
assert not vcr.migration.try_migrate(cassette)
|
|
assert filecmp.cmp(cassette, file_path) # should not change file
|