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

string replace frozenset

This commit is contained in:
Kevin McCarthy
2014-05-10 11:06:18 -10:00
parent 007fa851ed
commit 62f9c528b5

View File

@@ -31,7 +31,8 @@ except ImportError:
from yaml import Loader
def preprocess_yaml(cassette):
return cassette.replace(' !!python/object:vcr.request.Request', '')
return cassette.replace(' !!python/object:vcr.request.Request', '').replace('!!python/object/apply:__builtin__.frozenset', '')
PARTS = [
'protocol',
@@ -77,29 +78,14 @@ def migrate_json(in_fp, out_fp):
out_fp.write(serialize(interactions, jsonserializer))
def _restore_frozenset():
"""
Restore __builtin__.frozenset for cassettes serialized in python2 but
deserialized in python3 and builtins.frozenset for cassettes serialized
in python3 and deserialized in python2
"""
if '__builtin__' not in sys.modules:
import builtins
sys.modules['__builtin__'] = builtins
if 'builtins' not in sys.modules:
sys.modules['builtins'] = sys.modules['__builtin__']
def _frozenset_to_dict(fs):
return dict((k, v) for k, v in fs)
def _list_of_tuples_to_dict(fs):
return dict((k, v) for k, v in fs[0])
def migrate_yml(in_fp, out_fp):
_restore_frozenset()
data = yaml.load(preprocess_yaml(in_fp.read()), Loader=Loader)
for i in range(len(data)):
data[i]['request']['headers'] = _frozenset_to_dict(data[i]['request']['headers'])
data[i]['request']['headers'] = _list_of_tuples_to_dict(data[i]['request']['headers'])
interactions = _migrate(data)
out_fp.write(serialize(interactions, yamlserializer))