diff --git a/tests/unit/test_vcr.py b/tests/unit/test_vcr.py index 1f4d49a..9eda1e3 100644 --- a/tests/unit/test_vcr.py +++ b/tests/unit/test_vcr.py @@ -100,6 +100,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 79b62b6..78b3385 100644 --- a/vcr/cassette.py +++ b/vcr/cassette.py @@ -237,6 +237,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