History ======= 1.6.0 (2026-05-10) ------------------ Features ~~~~~~~~ * `#206 `_: Add fp.regex() for regex-based command argument matching. Bug fixes ~~~~~~~~~ * `#207 `_: Fix poll() not reflecting returncode when a callback is registered. * `#205 `_: Fix stdin not respecting text mode when text=True or encoding is set. 1.5.4 (2026-03-21) ------------------ Features ~~~~~~~~ * `#103 `_: Improve matching commands that contain quoted arguments. Bug fixes ~~~~~~~~~ * `#192 `_: Fix ResourceWarning for unclosed file handles in test_universal_newlines and test_text by explicitly closing process.stdout after reading, preventing intermittent failures on Python 3.12+. * `#196 `_: Handle stderr=STDOUT when stdout is a file handle. * `#194 `_: Patch imported `subprocess.Popen` aliases. * `#186 `_: Support file handles in stdout and stderr. Other changes ~~~~~~~~~~~~~ * `#197 `_: Officially support Python 3.14 and 3.15. 1.5.3 (2025-01-04) ------------------ Features ~~~~~~~~ * `#171 `_, `#178 `_: Allow to access keyword arguments passed to Popen. Bug fixes ~~~~~~~~~ * `#180 `_: Fixed an incorrect wait timeout calculation. * `#170 `_: Wrapped ProcessDispatcher.dispatch into FakePopenWrapper as it was causing TypeError when Popen is used as a type. * `#169 `_: Get rid of using thread in AsyncFakePopen as it causes thread.join() to hang indefinitely. 1.5.2 (2024-07-24) ------------------ Bug fixes ~~~~~~~~~ * `#162 `_: Include tests (and docs) and sdist correctly, and stop installing them to site-packages. Other changes ~~~~~~~~~~~~~ * `#163 `_: Add support for Python 3.12. 1.5.1 (2024-07-23) ------------------ Other changes ~~~~~~~~~~~~~ * `#160 `_: Changed pytest entrypoint to avoid error while loading plugin with `-p` argument. * `#128 `_: Add `tests` directory to sdist. 1.5.0 (2023-01-28) ------------------ Features ~~~~~~~~ * `#109 `_: Match also `os.PathLike`. * `#105 `_: Add program matcher. Other changes ~~~~~~~~~~~~~ * `#110 `_: Produce TypeError on Win Py<3.8 for Path args. 1.4.2 (2022-10-02) ------------------ Features ~~~~~~~~ * `#87 `_: Add support for Python 3.11. * `#80 `_, `#86 `_: The `register()` method returns an auxiliary object that will contain all matching `FakePopen` instances. Bug fixes ~~~~~~~~~ * `#93 `_: Raise callback exceptions on `communicate()` calls. Other changes ~~~~~~~~~~~~~ * `#97 `_: Fixed warnings in tests, treat warnings as errors. * `#91 `_: Use `sys.executable` instead just `"python"` in tests while invoking python subprocess. * `#90 `_: Fix documentation build, add CI check for it. 1.4.1 (2022-02-09) ------------------ Other changes ~~~~~~~~~~~~~ * `#74 `_: Add ``fp`` alias for the fixture, and ``register`` for the ``regisiter_subprocess``. 1.4.0 (2022-01-23) ------------------ Features ~~~~~~~~ * `#71 `_: Add support for stdin with asyncio. Bug fixes ~~~~~~~~~ * `#68 `_: Make `stdout` and `stderr` an `asyncio.StreamReader` instance when using asyncio functions. * `#63 `_, `#67 `_: Add missing items to `asyncio.subprocess`. Other changes ~~~~~~~~~~~~~ * `#69 `_: Extracted code into separate files to improve navigation. 1.3.2 (2021-11-07) ------------------ Bug fixes ~~~~~~~~~ * `#61 `_: Fixed behavior of ``asyncio.create_subproess_exec()``. 1.3.1 (2021-11-01) ------------------ Bug fixes ~~~~~~~~~ * `#58 `_: Correctly handle file stream output. 1.3.0 (2021-10-24) ------------------ Features ~~~~~~~~ * `#55 `_: Add support for ``terminate()``, ``kill()``, ``send_signal()``. 1.2.0 (2021-10-09) ------------------ Features ~~~~~~~~ * `#49 `_, `#52 `_: Add support for ``asyncio``. Other changes ~~~~~~~~~~~~~ * `#50 `_: Change docs theme. 1.1.2 (2021-07-17) ------------------ Bug fixes ~~~~~~~~~ * `#47 `_: Prevent `allow_unregistered()` and `keep_last_process()` from affecting other tests. 1.1.1 (2021-06-18) ------------------ Bug fixes ~~~~~~~~~ * `#43 `_: Wait for callback thread to finish when calling ``communicate()``. Other changes ~~~~~~~~~~~~~ * `#42 `_: Fix type annotations for `register_subprocess()`. 1.1.0 (2021-04-18) ------------------ Bug fixes ~~~~~~~~~ * `#37 `_: Preserve original command in `proc.args` to prevent leaking the internal `Command` type. Other changes ~~~~~~~~~~~~~ * `#38 `_: Switched CI from Azure Pipelines to GitHub Actions. * `#35 `_: Drop support for python 3.4 and 3.5. Move type annotations from `.pyi` files into sources. 1.0.1 (2021-03-20) ------------------ Bug fixes ~~~~~~~~~ * `#34 `_: Prevent appending newlines to outputs unless defined as list/tuple. Other changes ~~~~~~~~~~~~~ * `#32 `_: Make the ``Command`` class iterable. 1.0.0 (2020-08-22) ------------------ Features ~~~~~~~~ * `#29 `_: Remember subprocess calls to check if expected commands were executed. * `#28 `_: Allow to match a command with variable arguments (non-exact matching). 0.1.5 (2020-06-19) ------------------ Bug fixes ~~~~~~~~~ * `#26 `_: `encoding` and `errors` arguments will properly trigger `text` mode. 0.1.4 (2020-04-28) ------------------ Bug fixes ~~~~~~~~~ * `#22 `_: The `returncode` will not be ignored when `callback` is used. * `#21 `_: The exception raised from callback will take precedence over those from subprocess. * `#20 `_: Registering process will be now consistent regardless of the command type. * `#19 `_: Fixed crash for stderr redirect with an empty stream definition. 0.1.3 (2020-03-04) ------------------ Features ~~~~~~~~ * `#13 `_: Allow passing keyword arguments into callbacks. Bug fixes ~~~~~~~~~ * `#12 `_: Properly raise exceptions from callback functions. Documentation changes ~~~~~~~~~~~~~~~~~~~~~ * `#15 `_: Add documentation chapter about the callback functions. 0.1.2 (2020-01-17) ------------------ Features ~~~~~~~~ * `#3 `_: Add basic support for process input. Bug fixes ~~~~~~~~~ * `#5 `_: Make ``wait()`` method to raise ``TimeoutError`` after the desired time will elapse. Documentation changes ~~~~~~~~~~~~~~~~~~~~~ * `#7 `_, `#8 `_, `#9 `_: Create Sphinx documentation. Other changes ~~~~~~~~~~~~~ * `#10 `_: Switch from ``tox`` to ``nox`` for running tests and tasks. * `#4 `_: Add classifier for Python 3.9. Update CI config to test also on that interpreter version. 0.1.1 (2019-11-24) ------------------ Other changes ~~~~~~~~~~~~~ * `#1 `_, `#2 `_: Enable support for Python 3.4, add CI tests for that version. 0.1.0 (2019-11-23) ------------------ Initial release