Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

subprocess-mock-0.1.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

subprocess_mock-0.1.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for subprocess-mock-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6cf2ae931acff93b1b6ec5d8748f847683f889a18facc643cee676d047347ba9
MD5 7c54c42c0185b02ec30ced049f187fcc
BLAKE2b-256 fff79a6599af0838f5b5cc342d33c1afd4d437639935d64c149a5b1d6ee7326b

See more details on using hashes here.

File details

Details for the file subprocess_mock-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for subprocess_mock-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a2090042233ce6a87a5e417a809b0eb033345702c7d93a949828c4e67d33d738
MD5 a161604b757997e66fe2e76c6f2314e0
BLAKE2b-256 b7f68c1eee2d900865c1a5d44f9c8dca187af43c36b764629920e831ac4ddc4b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page