mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
Update VCR params to use new filters.
This commit is contained in:
@@ -47,31 +47,44 @@ def test_vcr_before_record_request_params():
|
|||||||
if request.path != '/get':
|
if request.path != '/get':
|
||||||
return request
|
return request
|
||||||
|
|
||||||
test_vcr = VCR(filter_headers=('cookie',), before_record_request=before_record_cb,
|
test_vcr = VCR(filter_headers=('cookie', ('bert', 'ernie')),
|
||||||
|
before_record_request=before_record_cb,
|
||||||
ignore_hosts=('www.test.com',), ignore_localhost=True,
|
ignore_hosts=('www.test.com',), ignore_localhost=True,
|
||||||
filter_query_parameters=('foo',))
|
filter_query_parameters=('foo', ('tom', 'jerry')),
|
||||||
|
filter_post_data_parameters=('posted', ('no', 'trespassing')))
|
||||||
|
|
||||||
with test_vcr.use_cassette('test') as cassette:
|
with test_vcr.use_cassette('test') as cassette:
|
||||||
assert cassette.filter_request(Request('GET', base_path + 'get', '', {})) is None
|
# Test explicit before_record_cb
|
||||||
assert cassette.filter_request(Request('GET', base_path + 'get2', '', {})) is not None
|
request_get = Request('GET', base_path + 'get', '', {})
|
||||||
|
assert cassette.filter_request(request_get) is None
|
||||||
|
request = Request('GET', base_path + 'get2', '', {})
|
||||||
|
assert cassette.filter_request(request) is not None
|
||||||
|
|
||||||
assert cassette.filter_request(Request('GET', base_path + '?foo=bar', '', {})).query == []
|
# Test filter_query_parameters
|
||||||
assert cassette.filter_request(
|
request = Request('GET', base_path + '?foo=bar', '', {})
|
||||||
Request('GET', base_path + '?foo=bar', '',
|
assert cassette.filter_request(request).query == []
|
||||||
{'cookie': 'test', 'other': 'fun'})).headers == {'other': 'fun'}
|
request = Request('GET', base_path + '?tom=nobody', '', {})
|
||||||
assert cassette.filter_request(
|
assert cassette.filter_request(request).query == [('tom', 'jerry')]
|
||||||
Request(
|
|
||||||
'GET', base_path + '?foo=bar', '',
|
|
||||||
{'cookie': 'test', 'other': 'fun'}
|
|
||||||
)
|
|
||||||
).headers == {'other': 'fun'}
|
|
||||||
|
|
||||||
assert cassette.filter_request(Request('GET', 'http://www.test.com' + '?foo=bar', '',
|
# Test filter_headers
|
||||||
{'cookie': 'test', 'other': 'fun'})) is None
|
request = Request('GET', base_path + '?foo=bar', '',
|
||||||
|
{'cookie': 'test', 'other': 'fun', 'bert': 'nobody'})
|
||||||
|
assert (cassette.filter_request(request).headers ==
|
||||||
|
{'other': 'fun', 'bert': 'ernie'})
|
||||||
|
|
||||||
|
# Test ignore_hosts
|
||||||
|
request = Request('GET', 'http://www.test.com' + '?foo=bar', '',
|
||||||
|
{'cookie': 'test', 'other': 'fun'})
|
||||||
|
assert cassette.filter_request(request) is None
|
||||||
|
|
||||||
|
# Test ignore_localhost
|
||||||
|
request = Request('GET', 'http://localhost:8000' + '?foo=bar', '',
|
||||||
|
{'cookie': 'test', 'other': 'fun'})
|
||||||
|
assert cassette.filter_request(request) is None
|
||||||
|
|
||||||
with test_vcr.use_cassette('test', before_record_request=None) as cassette:
|
with test_vcr.use_cassette('test', before_record_request=None) as cassette:
|
||||||
# Test that before_record can be overwritten with
|
# Test that before_record can be overwritten in context manager.
|
||||||
assert cassette.filter_request(Request('GET', base_path + 'get', '', {})) is not None
|
assert cassette.filter_request(request_get) is not None
|
||||||
|
|
||||||
|
|
||||||
def test_vcr_before_record_response_iterable():
|
def test_vcr_before_record_response_iterable():
|
||||||
|
|||||||
@@ -199,22 +199,28 @@ class VCR(object):
|
|||||||
'ignore_localhost', self.ignore_localhost
|
'ignore_localhost', self.ignore_localhost
|
||||||
)
|
)
|
||||||
if filter_headers:
|
if filter_headers:
|
||||||
|
replacements = [h if isinstance(h, tuple) else (h, None)
|
||||||
|
for h in filter_headers]
|
||||||
filter_functions.append(
|
filter_functions.append(
|
||||||
functools.partial(
|
functools.partial(
|
||||||
filters.remove_headers,
|
filters.replace_headers,
|
||||||
headers_to_remove=filter_headers
|
replacements=replacements,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if filter_query_parameters:
|
if filter_query_parameters:
|
||||||
|
replacements = [p if isinstance(p, tuple) else (p, None)
|
||||||
|
for p in filter_query_parameters]
|
||||||
filter_functions.append(functools.partial(
|
filter_functions.append(functools.partial(
|
||||||
filters.remove_query_parameters,
|
filters.replace_query_parameters,
|
||||||
query_parameters_to_remove=filter_query_parameters
|
replacements=replacements,
|
||||||
))
|
))
|
||||||
if filter_post_data_parameters:
|
if filter_post_data_parameters:
|
||||||
|
replacements = [p if isinstance(p, tuple) else (p, None)
|
||||||
|
for p in filter_post_data_parameters]
|
||||||
filter_functions.append(
|
filter_functions.append(
|
||||||
functools.partial(
|
functools.partial(
|
||||||
filters.remove_post_data_parameters,
|
filters.replace_post_data_parameters,
|
||||||
post_data_parameters_to_remove=filter_post_data_parameters
|
replacements=replacements,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user