mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +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
|
.coverage
|
||||||
*.egg-info/
|
*.egg-info/
|
||||||
pytestdebug.log
|
pytestdebug.log
|
||||||
|
|
||||||
|
fixtures/
|
||||||
@@ -118,3 +118,13 @@ def test_global_toggle(mock_reset, mock_install):
|
|||||||
function()
|
function()
|
||||||
mock_install.assert_called_once_with(mock.ANY)
|
mock_install.assert_called_once_with(mock.ANY)
|
||||||
mock_reset.assert_called_once_with()
|
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_headers=(),
|
||||||
filter_query_parameters=(),
|
filter_query_parameters=(),
|
||||||
before_record=None,
|
before_record=None,
|
||||||
|
before_record_response=None,
|
||||||
ignore_hosts=(),
|
ignore_hosts=(),
|
||||||
ignore_localhost=()
|
ignore_localhost=()
|
||||||
):
|
):
|
||||||
@@ -85,6 +86,7 @@ class Cassette(object):
|
|||||||
self._filter_headers = filter_headers
|
self._filter_headers = filter_headers
|
||||||
self._filter_query_parameters = filter_query_parameters
|
self._filter_query_parameters = filter_query_parameters
|
||||||
self._before_record = before_record
|
self._before_record = before_record
|
||||||
|
self._before_record_response = before_record_response
|
||||||
self._ignore_hosts = ignore_hosts
|
self._ignore_hosts = ignore_hosts
|
||||||
if ignore_localhost:
|
if ignore_localhost:
|
||||||
self._ignore_hosts = list(set(
|
self._ignore_hosts = list(set(
|
||||||
@@ -136,6 +138,8 @@ class Cassette(object):
|
|||||||
request = self._filter_request(request)
|
request = self._filter_request(request)
|
||||||
if not request:
|
if not request:
|
||||||
return
|
return
|
||||||
|
if self._before_record_response:
|
||||||
|
response = self._before_record_response(response)
|
||||||
self.data.append((request, response))
|
self.data.append((request, response))
|
||||||
self.dirty = True
|
self.dirty = True
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class VCR(object):
|
|||||||
filter_headers=[],
|
filter_headers=[],
|
||||||
filter_query_parameters=[],
|
filter_query_parameters=[],
|
||||||
before_record=None,
|
before_record=None,
|
||||||
|
before_record_response=None,
|
||||||
match_on=[
|
match_on=[
|
||||||
'method',
|
'method',
|
||||||
'scheme',
|
'scheme',
|
||||||
@@ -46,6 +47,7 @@ class VCR(object):
|
|||||||
self.filter_headers = filter_headers
|
self.filter_headers = filter_headers
|
||||||
self.filter_query_parameters = filter_query_parameters
|
self.filter_query_parameters = filter_query_parameters
|
||||||
self.before_record = before_record
|
self.before_record = before_record
|
||||||
|
self.before_record_response = before_record_response
|
||||||
self.ignore_hosts = ignore_hosts
|
self.ignore_hosts = ignore_hosts
|
||||||
self.ignore_localhost = ignore_localhost
|
self.ignore_localhost = ignore_localhost
|
||||||
|
|
||||||
@@ -95,6 +97,9 @@ class VCR(object):
|
|||||||
"before_record": kwargs.get(
|
"before_record": kwargs.get(
|
||||||
"before_record", self.before_record
|
"before_record", self.before_record
|
||||||
),
|
),
|
||||||
|
"before_record_response": kwargs.get(
|
||||||
|
"before_record_response", self.before_record_response
|
||||||
|
),
|
||||||
"ignore_hosts": kwargs.get(
|
"ignore_hosts": kwargs.get(
|
||||||
'ignore_hosts', self.ignore_hosts
|
'ignore_hosts', self.ignore_hosts
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user