Subprocess Mock
Project description
Subprocess Mock
Mock objects for the standard library’s subprocess module
pip install subprocess-mock
Installation in a virtual environment is recommended.
Example Usage
Use a subprocess_mock.ModuleFunctions instance to patch subprocess module functions in unit tests in order to record the calls and - if required - inject called process output and returncode (currently, only the patch method for subprocess.run() has been implemented).
>>> import pathlib
>>> import subprocess
>>> import subprocess_mock
>>> from unittest.mock import patch
>>>
>>> new_file = pathlib.Path("testfile.txt")
>>> new_file.exists()
False
>>>
>>> # Test: call a process with a mock.patched subprocess.run
>>> # The process not called with normal effects,
>>> # but a call is recorded in the subprocess_mock.ModuleFunctions() object
>>>
>>> smf = subprocess_mock.ModuleFunctions()
>>> with patch("subprocess.run", new=smf.run):
... run_result = subprocess.run(["touch", str(new_file)])
...
>>> run_result
CompletedProcess(args=['touch', 'testfile.txt'], returncode=0)
>>> smf.call_results
[(CompletedProcess(args=['touch', 'testfile.txt'], returncode=0), {})]
>>> new_file.exists()
False
>>>
>>> # Counter-test: call the process without patching subprocess.run
>>> # The process is called with normal effects, no call is recorded
>>>
>>> smf.reset()
>>> smf.call_results
[]
>>> run_result = subprocess.run(["touch", str(new_file)])
>>> new_file.exists()
True
>>> smf.call_results
[]
>>>
Further reading
Please see the documentation at https://blackstream-x.gitlab.io/subprocess-mock for detailed usage information.
If you found a bug or have a feature suggestion, please open an issue here
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file subprocess-mock-0.1.0.tar.gz
.
File metadata
- Download URL: subprocess-mock-0.1.0.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6cf2ae931acff93b1b6ec5d8748f847683f889a18facc643cee676d047347ba9 |
|
MD5 | 7c54c42c0185b02ec30ced049f187fcc |
|
BLAKE2b-256 | fff79a6599af0838f5b5cc342d33c1afd4d437639935d64c149a5b1d6ee7326b |
File details
Details for the file subprocess_mock-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: subprocess_mock-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2090042233ce6a87a5e417a809b0eb033345702c7d93a949828c4e67d33d738 |
|
MD5 | a161604b757997e66fe2e76c6f2314e0 |
|
BLAKE2b-256 | b7f68c1eee2d900865c1a5d44f9c8dca187af43c36b764629920e831ac4ddc4b |