We have been using Mock for python for a while.
Now, we have a situation in which we want to mock a function
def foo(self, my_param):
#do someth
If
side_effectis a function then whatever that function returns is what calls to the mock return. Theside_effectfunction is called with the same arguments as the mock. This allows you to vary the return value of the call dynamically, based on the input:>>> def side_effect(value): ... return value + 1 ... >>> m = MagicMock(side_effect=side_effect) >>> m(1) 2 >>> m(2) 3 >>> m.mock_calls [call(1), call(2)]
http://www.voidspace.org.uk/python/mock/mock.html#calling