A multiprocessing-friendly Python mock object
SharedMock object has an interface similar to Python’s own
unittest.mock.Mock. The main difference is that the state of a
SharedMock object is shared among subprocesses. This allows you to
easily test interactions of subprocesses with your mock instance.
from sharedmock.mock import SharedMock sharedmock = SharedMock() subprocess = mp.Process(target=sharedmock, args=('fancyArg',)) subprocess.start() subprocess.join() subprocess.terminate() expected_calls = [call('fancyArg')] sharedmock.assert_has_calls(expected_calls, same_order=False)
SharedMock were to be replaced by a
the example above, the assertion would fail. The interaction with the
unittest.mock.Mock object would not get propagated to your test
E AssertionError: Calls not found. E Expected: [call('fancyArg')] E Actual: 
The entire source code is available on GitHub.
Documentation can be found on Read the Docs.