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

Add before_record_response to Cassette and VCR.

This commit is contained in:
Ivan Malison
2014-09-17 04:10:05 -07:00
parent 366e2b75bb
commit 9a4f5f23a4
4 changed files with 21 additions and 0 deletions

2
.gitignore vendored
View File

@@ -6,3 +6,5 @@ dist/
.coverage
*.egg-info/
pytestdebug.log
fixtures/

View File

@@ -118,3 +118,13 @@ def test_global_toggle(mock_reset, mock_install):
function()
mock_install.assert_called_once_with(mock.ANY)
mock_reset.assert_called_once_with()
def test_before_record_response():
before_record_response = mock.Mock(return_value='mutated')
cassette = Cassette('test', before_record_response=before_record_response)
cassette.append('req', 'res')
before_record_response.assert_called_once_with('res')
assert cassette.responses[0] == 'mutated'

View File

@@ -76,6 +76,7 @@ class Cassette(object):
filter_headers=(),
filter_query_parameters=(),
before_record=None,
before_record_response=None,
ignore_hosts=(),
ignore_localhost=()
):
@@ -85,6 +86,7 @@ class Cassette(object):
self._filter_headers = filter_headers
self._filter_query_parameters = filter_query_parameters
self._before_record = before_record
self._before_record_response = before_record_response
self._ignore_hosts = ignore_hosts
if ignore_localhost:
self._ignore_hosts = list(set(
@@ -136,6 +138,8 @@ class Cassette(object):
request = self._filter_request(request)
if not request:
return
if self._before_record_response:
response = self._before_record_response(response)
self.data.append((request, response))
self.dirty = True

View File

@@ -12,6 +12,7 @@ class VCR(object):
filter_headers=[],
filter_query_parameters=[],
before_record=None,
before_record_response=None,
match_on=[
'method',
'scheme',
@@ -46,6 +47,7 @@ class VCR(object):
self.filter_headers = filter_headers
self.filter_query_parameters = filter_query_parameters
self.before_record = before_record
self.before_record_response = before_record_response
self.ignore_hosts = ignore_hosts
self.ignore_localhost = ignore_localhost
@@ -95,6 +97,9 @@ class VCR(object):
"before_record": kwargs.get(
"before_record", self.before_record
),
"before_record_response": kwargs.get(
"before_record_response", self.before_record_response
),
"ignore_hosts": kwargs.get(
'ignore_hosts', self.ignore_hosts
),