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

Change use_cassette to pass a function to CassetteContextDecorator so that changes to the default settings on the vcr properly propogate.

This commit is contained in:
Ivan Malison
2014-09-18 02:52:44 -07:00
parent 472cc3bffe
commit 643a4c91ee
4 changed files with 63 additions and 14 deletions

View File

@@ -1,3 +1,4 @@
import functools
import os
from .cassette import Cassette
from .serializers import yamlserializer, jsonserializer
@@ -74,13 +75,16 @@ class VCR(object):
return matchers
def use_cassette(self, path, **kwargs):
args_getter = functools.partial(self.get_path_and_merged_config, path, **kwargs)
return Cassette.use_arg_getter(args_getter)
def get_path_and_merged_config(self, path, **kwargs):
serializer_name = kwargs.get('serializer', self.serializer)
matcher_names = kwargs.get('match_on', self.match_on)
cassette_library_dir = kwargs.get(
'cassette_library_dir',
self.cassette_library_dir
)
if cassette_library_dir:
path = os.path.join(cassette_library_dir, path)
@@ -107,8 +111,7 @@ class VCR(object):
'ignore_localhost', self.ignore_localhost
),
}
return Cassette.use(path, **merged_config)
return path, merged_config
def register_serializer(self, name, serializer):
self.serializers[name] = serializer