diff --git a/vcr/cassette.py b/vcr/cassette.py index 9122b4aa..0db98569 100644 --- a/vcr/cassette.py +++ b/vcr/cassette.py @@ -247,6 +247,8 @@ def _responses(self, request): the request. """ request = self._before_record_request(request) + if request is None: + return for index, (stored_request, response) in enumerate(self.data): if requests_match(request, stored_request, self._match_on): yield index, response diff --git a/vcr/stubs/__init__.py b/vcr/stubs/__init__.py index 8a1a16a4..ce3a501a 100644 --- a/vcr/stubs/__init__.py +++ b/vcr/stubs/__init__.py @@ -227,7 +227,7 @@ def getresponse(self, _=False, **kwargs): response = self.cassette.play_response(self._vcr_request) return VCRHTTPResponse(response) else: - if self.cassette.write_protected and self.cassette.filter_request(self._vcr_request): + if self.cassette.write_protected and self._vcr_request in self.cassette: raise CannotOverwriteExistingCassetteException( cassette=self.cassette, failed_request=self._vcr_request ) diff --git a/vcr/stubs/aiohttp_stubs.py b/vcr/stubs/aiohttp_stubs.py index f71b1394..3fbda860 100644 --- a/vcr/stubs/aiohttp_stubs.py +++ b/vcr/stubs/aiohttp_stubs.py @@ -269,7 +269,7 @@ async def new_request(self, method, url, **kwargs): self._cookie_jar.update_cookies(response.cookies, response.url) return response - if cassette.write_protected and cassette.filter_request(vcr_request): + if cassette.write_protected and vcr_request in cassette: raise CannotOverwriteExistingCassetteException(cassette=cassette, failed_request=vcr_request) log.info("%s not in cassette, sending to real server", vcr_request) diff --git a/vcr/stubs/httpx_stubs.py b/vcr/stubs/httpx_stubs.py index 803ddbe1..b3104339 100644 --- a/vcr/stubs/httpx_stubs.py +++ b/vcr/stubs/httpx_stubs.py @@ -83,7 +83,7 @@ def _shared_vcr_send(cassette, real_send, *args, **kwargs): if cassette.can_play_response_for(vcr_request): return vcr_request, _play_responses(cassette, real_request, vcr_request, args[0], kwargs) - if cassette.write_protected and cassette.filter_request(vcr_request): + if cassette.write_protected and vcr_request in cassette: raise CannotOverwriteExistingCassetteException(cassette=cassette, failed_request=vcr_request) _logger.info("%s not in cassette, sending to real server", vcr_request) diff --git a/vcr/stubs/tornado_stubs.py b/vcr/stubs/tornado_stubs.py index b482fd1f..7255888b 100644 --- a/vcr/stubs/tornado_stubs.py +++ b/vcr/stubs/tornado_stubs.py @@ -60,7 +60,7 @@ def new_fetch_impl(self, request, callback): ) return callback(response) else: - if cassette.write_protected and cassette.filter_request(vcr_request): + if cassette.write_protected and vcr_request in cassette: response = HTTPResponse( request, 599,