There's more...
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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access