• Mario Corchero's avatar
    bpo-35330: Don't call the wrapped object if `side_effect` is set (GH10973) · f05df0a4
    Mario Corchero authored
    * tests: Further validate `wraps` functionality in `unittest.mock.Mock`
    
    Add more tests to validate how `wraps` interacts with other features of
    mocks.
    
    * Don't call the wrapped object if `side_effect` is set
    
    When a object is wrapped using `Mock(wraps=...)`, if an user sets a
    `side_effect` in one of their methods, return the value of `side_effect`
    and don't call the original object.
    
    * Refactor what to be called on `mock_call`
    
    When a `Mock` is called, it should return looking up in the following
    order: `side_effect`, `return_value`, `wraps`. If any of the first two
    return `mock.DEFAULT`, lookup in the next option.
    
    It makes no sense to check for `wraps` returning default, as it is
    supposed to be the original implementation and there is nothing to
    fallback to.
    f05df0a4
2018-12-06-00-43-13.bpo-35330.abB4BN.rst 252 Bytes