mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-11 01:53:01 +00:00
string replace frozenset
This commit is contained in:
@@ -31,7 +31,8 @@ except ImportError:
|
|||||||
from yaml import Loader
|
from yaml import Loader
|
||||||
|
|
||||||
def preprocess_yaml(cassette):
|
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 = [
|
PARTS = [
|
||||||
'protocol',
|
'protocol',
|
||||||
@@ -77,29 +78,14 @@ def migrate_json(in_fp, out_fp):
|
|||||||
out_fp.write(serialize(interactions, jsonserializer))
|
out_fp.write(serialize(interactions, jsonserializer))
|
||||||
|
|
||||||
|
|
||||||
def _restore_frozenset():
|
def _list_of_tuples_to_dict(fs):
|
||||||
"""
|
return dict((k, v) for k, v in fs[0])
|
||||||
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 migrate_yml(in_fp, out_fp):
|
def migrate_yml(in_fp, out_fp):
|
||||||
_restore_frozenset()
|
|
||||||
data = yaml.load(preprocess_yaml(in_fp.read()), Loader=Loader)
|
data = yaml.load(preprocess_yaml(in_fp.read()), Loader=Loader)
|
||||||
for i in range(len(data)):
|
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)
|
interactions = _migrate(data)
|
||||||
out_fp.write(serialize(interactions, yamlserializer))
|
out_fp.write(serialize(interactions, yamlserializer))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user