From 2c13bf12aeb3b30c052dd11d3ec1a1fe38d0239a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bern=C3=A1t=20G=C3=A1bor?= Date: Wed, 18 Aug 2021 14:35:59 +0100 Subject: Fix parallel show output not working (#2161) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When there was also a package built in the given run. Signed-off-by: Bernát Gábor --- docs/changelog/2161.bugfix.rst | 1 + src/tox/session/cmd/run/common.py | 6 +++--- tests/session/cmd/test_parallel.py | 8 ++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 docs/changelog/2161.bugfix.rst diff --git a/docs/changelog/2161.bugfix.rst b/docs/changelog/2161.bugfix.rst new file mode 100644 index 00000000..e8e87c37 --- /dev/null +++ b/docs/changelog/2161.bugfix.rst @@ -0,0 +1 @@ +Parallel show output not working when there's a packaging phase in the run - by :user:`gaborbernat`. diff --git a/src/tox/session/cmd/run/common.py b/src/tox/session/cmd/run/common.py index ae844eae..857c59a7 100644 --- a/src/tox/session/cmd/run/common.py +++ b/src/tox/session/cmd/run/common.py @@ -328,9 +328,9 @@ def _handle_one_run_done(result: ToxEnvRunResult, spinner: ToxSpinner, state: St out_err = tox_env.close_and_read_out_err() # sync writes from buffer to stdout/stderr pkg_out_err_list = [] for package_env in tox_env.package_envs: - out_err = package_env.close_and_read_out_err() - if out_err is not None: # pragma: no branch - pkg_out_err_list.append(out_err) + pkg_out_err = package_env.close_and_read_out_err() + if pkg_out_err is not None: # pragma: no branch + pkg_out_err_list.append(pkg_out_err) if not success or tox_env.conf["parallel_show_output"]: for pkg_out_err in pkg_out_err_list: state.log_handler.write_out_err(pkg_out_err) # pragma: no cover diff --git a/tests/session/cmd/test_parallel.py b/tests/session/cmd/test_parallel.py index 286328d2..242370e4 100644 --- a/tests/session/cmd/test_parallel.py +++ b/tests/session/cmd/test_parallel.py @@ -1,4 +1,5 @@ from argparse import ArgumentTypeError +from pathlib import Path import pytest from pytest_mock import MockerFixture @@ -98,3 +99,10 @@ def test_parallel_run_live_out(tox_project: ToxProjectCreator) -> None: assert "python -c" in outcome.out assert "run a" in outcome.out assert "run b" in outcome.out + + +def test_parallel_show_output_with_pkg(tox_project: ToxProjectCreator, demo_pkg_inline: Path) -> None: + ini = "[testenv]\nparallel_show_output=True\ncommands=python -c 'print(\"r {env_name}\")'" + project = tox_project({"tox.ini": ini}) + result = project.run("p", "--root", str(demo_pkg_inline)) + assert "r py" in result.out -- cgit v1.2.1