August 2018
Intermediate to advanced
366 pages
10h 14m
English
The Mock objects are actually not constrained to doing nothing.
By providing the side_effect argument to mock.patch, you can have them raise exceptions when called. This is helpful in simulating failures in your code.
Or you can even replace their behavior with a totally different object by providing new to mock.patch, which is great to inject fake objects in place of the real implementation.
So, generally, unittest.mock can be used to replace the behavior of existing classes and objects with anything else, from mock objects, to fake objects, to different implementations.
But pay attention when using them, because if the caller had a reference to the original object saved aside, mock.patch might be unable to replace the function ...