disallowing writes only when fully matched request is in cassette#659
Open
miki725 wants to merge 2 commits intokevin1024:masterfrom
Open
disallowing writes only when fully matched request is in cassette#659miki725 wants to merge 2 commits intokevin1024:masterfrom
miki725 wants to merge 2 commits intokevin1024:masterfrom
Conversation
`cassette.filter_request` only filters some request attributes like headers but does not take into account any of the `match_on` configurations. As a result if a similar request has been seen before but does not fully match as per `match_on`, writes will be disallowed. `cassette.__contains__` however fully takes into account all `match_on` matchers and therefore will only guard against recording to the cassette when the same request has been previously recorded
Author
|
if this looks reasonable I can work on adjusting/adding tests as necessary but would appreciate any feedback first |
assuming: * any of the ignore requests is configured as documented in https://vcrpy.readthedocs.io/en/latest/advanced.html?highlight=ignore_hosts#ignore-requests * request matchers are configured as documented in https://vcrpy.readthedocs.io/en/latest/configuration.html#request-matching since the filtering logic returns None when request should be ignored however matchers assume both requests being compared are valid requests and so when one of the requests is None it raises AttributeError as no attribute such as "uri" can be accessed on NoneType this fix simply does not consider the request for matching if it is ignored
df3997c to
34d5384
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
cassette.filter_requestonly filters some request attributes like headers but does not take into account any of thematch_onconfigurations. As a result if a similar request has been seen before but does not fully match as permatch_on, writes will be disallowed.cassette.__contains__however fully takes into account allmatch_onmatchers and therefore will only guard against recording to the cassette when the same request has been previously recorded