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:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -6,3 +6,5 @@ dist/
|
||||
.coverage
|
||||
*.egg-info/
|
||||
pytestdebug.log
|
||||
|
||||
fixtures/
|
||||
@@ -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'
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user