[3.7] bpo-35330: Don't call the wrapped object if side_effect is set (GH10973)
#11035
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.
wrapsfunctionality inunittest.mock.MockAdd more tests to validate how
wrapsinteracts with other features ofmocks.
side_effectis setWhen a object is wrapped using
Mock(wraps=...), if an user sets aside_effectin one of their methods, return the value ofside_effectand don't call the original object.
mock_callWhen a
Mockis called, it should return looking up in the followingorder:
side_effect,return_value,wraps. If any of the first tworeturn
mock.DEFAULT, lookup in the next option.It makes no sense to check for
wrapsreturning default, as it issupposed to be the original implementation and there is nothing to
fallback to.
(cherry picked from commit f05df0a)
Co-authored-by: Mario Corchero [email protected]
https://bugs.python.org/issue35330