Python ``SharedMock``
=====================
|Build Status| |Coverage Status| |Docs Status|
.. |Build Status| image:: https://travis-ci.org/elritsch/python-sharedmock.svg?branch=master
:target: https://travis-ci.org/elritsch/python-sharedmock
.. |Coverage Status| image:: https://coveralls.io/repos/github/elritsch/python-sharedmock/badge.svg?branch=master
:target: https://coveralls.io/github/elritsch/python-sharedmock?branch=master
.. |Docs Status| image:: https://readthedocs.org/projects/python-sharedmock/badge/?version=latest
:target: http://python-sharedmock.readthedocs.io/en/latest/?badge=latest
A multiprocessing-friendly Python mock object
Getting started
---------------
The ``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.
.. code:: python
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)
If the ``SharedMock`` were to be replaced by a ``unittest.mock.Mock`` in
the example above, the assertion would fail. The interaction with the
``unittest.mock.Mock`` object would not get propagated to your test
code:
.. code:: python
E AssertionError: Calls not found.
E Expected: [call('fancyArg')]
E Actual: []
Source
------
The entire source code is available on `GitHub`_.
.. _GitHub: https://github.com/elritsch/python-sharedmock
Documentation
-------------
Documentation can be found on `Read the Docs`_.
.. _Read the Docs: https://python-sharedmock.readthedocs.io
Raw data
{
"_id": null,
"home_page": "https://github.com/elritsch/python-sharedmock",
"name": "sharedmock",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "testing multiprocessing development",
"author": "Elmar Ritsch",
"author_email": "elmar.ritsch@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/66/18/732b03cddc2ab9a7ce5b3493c63b9592c77cc738c48d468433a788107bb4/sharedmock-0.1.0.tar.gz",
"platform": null,
"description": "Python ``SharedMock``\n=====================\n\n|Build Status| |Coverage Status| |Docs Status|\n\n.. |Build Status| image:: https://travis-ci.org/elritsch/python-sharedmock.svg?branch=master\n :target: https://travis-ci.org/elritsch/python-sharedmock\n.. |Coverage Status| image:: https://coveralls.io/repos/github/elritsch/python-sharedmock/badge.svg?branch=master\n :target: https://coveralls.io/github/elritsch/python-sharedmock?branch=master\n.. |Docs Status| image:: https://readthedocs.org/projects/python-sharedmock/badge/?version=latest\n :target: http://python-sharedmock.readthedocs.io/en/latest/?badge=latest\n\nA multiprocessing-friendly Python mock object\n\nGetting started\n---------------\n\nThe ``SharedMock`` object has an interface similar to Python\u2019s own\n``unittest.mock.Mock``. The main difference is that the state of a\n``SharedMock`` object is shared among subprocesses. This allows you to\neasily test interactions of subprocesses with your mock instance.\n\n.. code:: python\n\n from sharedmock.mock import SharedMock\n\n sharedmock = SharedMock()\n\n subprocess = mp.Process(target=sharedmock,\n args=('fancyArg',))\n subprocess.start()\n subprocess.join()\n subprocess.terminate()\n\n expected_calls = [call('fancyArg')]\n sharedmock.assert_has_calls(expected_calls,\n same_order=False)\n\nIf the ``SharedMock`` were to be replaced by a ``unittest.mock.Mock`` in\nthe example above, the assertion would fail. The interaction with the\n``unittest.mock.Mock`` object would not get propagated to your test\ncode:\n\n.. code:: python\n\n E AssertionError: Calls not found.\n E Expected: [call('fancyArg')]\n E Actual: []\n\nSource\n------\n\nThe entire source code is available on `GitHub`_.\n\n.. _GitHub: https://github.com/elritsch/python-sharedmock\n\nDocumentation\n-------------\n\nDocumentation can be found on `Read the Docs`_.\n\n.. _Read the Docs: https://python-sharedmock.readthedocs.io\n",
"bugtrack_url": null,
"license": "Apache v2.0",
"summary": "A multiprocessing-friendly Python mock object",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/elritsch/python-sharedmock"
},
"split_keywords": [
"testing",
"multiprocessing",
"development"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6618732b03cddc2ab9a7ce5b3493c63b9592c77cc738c48d468433a788107bb4",
"md5": "1b4148afddd1e2699397f9cdfc85ad0a",
"sha256": "807104fca48b7bc4cc4260cbf235e276948181ead15fc65353895d3a2a0becc0"
},
"downloads": -1,
"filename": "sharedmock-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "1b4148afddd1e2699397f9cdfc85ad0a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7558,
"upload_time": "2024-02-07T02:51:08",
"upload_time_iso_8601": "2024-02-07T02:51:08.709062Z",
"url": "https://files.pythonhosted.org/packages/66/18/732b03cddc2ab9a7ce5b3493c63b9592c77cc738c48d468433a788107bb4/sharedmock-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-07 02:51:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "elritsch",
"github_project": "python-sharedmock",
"travis_ci": true,
"coveralls": true,
"github_actions": false,
"requirements": [],
"lcname": "sharedmock"
}