From 99d4150df8a933f26ec82b6bcfb987b09882ccca Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Mon, 11 Jan 2016 15:53:04 -0800 Subject: [PATCH 1/2] allow filtering by response --- tests/unit/test_vcr.py | 15 +++++++++++++++ vcr/cassette.py | 2 ++ 2 files changed, 17 insertions(+) diff --git a/tests/unit/test_vcr.py b/tests/unit/test_vcr.py index 92c85ab..297595d 100644 --- a/tests/unit/test_vcr.py +++ b/tests/unit/test_vcr.py @@ -113,6 +113,21 @@ def test_vcr_before_record_response_iterable(): assert mock_filter.call_count == 1 +def test_before_record_response_as_filter(): + request = Request('GET', '/', '', {}) + response = object() # just can't be None + + # Prevent actually saving the cassette + with mock.patch('vcr.cassette.save_cassette'): + + filter_all = mock.Mock(return_value=None) + vcr = VCR(before_record_response=filter_all) + with vcr.use_cassette('test') as cassette: + cassette.append(request, response) + assert cassette.data == []e + assert not cassette.dirty + + def test_vcr_path_transformer(): # Regression test for #199 diff --git a/vcr/cassette.py b/vcr/cassette.py index db94224..2f5c293 100644 --- a/vcr/cassette.py +++ b/vcr/cassette.py @@ -211,6 +211,8 @@ class Cassette(object): if not request: return response = self._before_record_response(response) + if response is None: + return self.data.append((request, response)) self.dirty = True From 43b3411e6c07d2d0fae9e4524082927179654a36 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Mon, 11 Jan 2016 16:57:10 -0800 Subject: [PATCH 2/2] Fix travis check for flakes --- .travis.yml | 2 +- tests/unit/test_vcr.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a40d613..3aedfe5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,6 +39,6 @@ python: - pypy install: - pip install tox-travis -- if [[ $TOX_SUFFIX != flakes ]]; then python setup.py install ; fi +- if [[ $TOX_SUFFIX != 'flakes' ]]; then python setup.py install ; fi script: - tox -e "${TOX_SUFFIX}" diff --git a/tests/unit/test_vcr.py b/tests/unit/test_vcr.py index 297595d..decb366 100644 --- a/tests/unit/test_vcr.py +++ b/tests/unit/test_vcr.py @@ -124,7 +124,7 @@ def test_before_record_response_as_filter(): vcr = VCR(before_record_response=filter_all) with vcr.use_cassette('test') as cassette: cassette.append(request, response) - assert cassette.data == []e + assert cassette.data == [] assert not cassette.dirty