From d990302b6bc5b0cea33ff454a94749275cd4bd44 Mon Sep 17 00:00:00 2001 From: q0w <43147888+q0w@users.noreply.github.com> Date: Sun, 25 Dec 2022 01:13:48 +0300 Subject: [PATCH 1/2] Suppress a report output when verbosity = 0. --- docs/changelog/2697.feature.rst | 1 + src/tox/session/cmd/run/common.py | 12 +++++++++--- tests/session/cmd/run/test_common.py | 9 +++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 docs/changelog/2697.feature.rst diff --git a/docs/changelog/2697.feature.rst b/docs/changelog/2697.feature.rst new file mode 100644 index 000000000..7ed95ea8e --- /dev/null +++ b/docs/changelog/2697.feature.rst @@ -0,0 +1 @@ +Suppress a report output when verbosity = 0. diff --git a/src/tox/session/cmd/run/common.py b/src/tox/session/cmd/run/common.py index e8a5eeb72..cc546e139 100644 --- a/src/tox/session/cmd/run/common.py +++ b/src/tox/session/cmd/run/common.py @@ -165,9 +165,10 @@ def __call__( ) -def report(start: float, runs: list[ToxEnvRunResult], is_colored: bool) -> int: +def report(start: float, runs: list[ToxEnvRunResult], is_colored: bool, verbosity: int) -> int: def _print(color_: int, message: str) -> None: - print(f"{color_ if is_colored else ''}{message}{Fore.RESET if is_colored else ''}") + if verbosity: + print(f"{color_ if is_colored else ''}{message}{Fore.RESET if is_colored else ''}") successful, skipped = [], [] for run in runs: @@ -250,7 +251,12 @@ def execute(state: State, max_workers: int | None, has_spinner: bool, live: bool # write the journal write_journal(getattr(state.conf.options, "result_json", None), state._journal) # report the outcome - exit_code = report(state.conf.options.start, ordered_results, state.conf.options.is_colored) + exit_code = report( + state.conf.options.start, + ordered_results, + state.conf.options.is_colored, + state.conf.options.verbosity, + ) if has_previous: signal(SIGINT, previous) return exit_code diff --git a/tests/session/cmd/run/test_common.py b/tests/session/cmd/run/test_common.py index 5f8cf476f..f2f2e0a1f 100644 --- a/tests/session/cmd/run/test_common.py +++ b/tests/session/cmd/run/test_common.py @@ -6,6 +6,7 @@ import pytest +from tox.pytest import ToxProjectCreator from tox.session.cmd.run.common import InstallPackageAction, SkipMissingInterpreterAction @@ -50,3 +51,11 @@ def test_install_pkg_empty() -> None: argument_parser = ArgumentParser() with pytest.raises(ArgumentError, match=re.escape("argument --install-pkg: cannot be empty")): InstallPackageAction(option_strings=["--install-pkg"], dest="into")(argument_parser, Namespace(), "") + + +def test_empty_report(tox_project: ToxProjectCreator) -> None: + proj = tox_project({"tox.ini": ""}) + outcome = proj.run("exec", "-qq", "--", "python", "-c", "print('foo')") + + outcome.assert_success() + outcome.assert_out_err("foo\n", "") From 70f3d8037134fbd3e0838172813df9dcf25d2411 Mon Sep 17 00:00:00 2001 From: q0w <43147888+q0w@users.noreply.github.com> Date: Sun, 25 Dec 2022 01:23:38 +0300 Subject: [PATCH 2/2] Use os.linesep --- tests/session/cmd/run/test_common.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/session/cmd/run/test_common.py b/tests/session/cmd/run/test_common.py index f2f2e0a1f..3a0866cc2 100644 --- a/tests/session/cmd/run/test_common.py +++ b/tests/session/cmd/run/test_common.py @@ -1,5 +1,6 @@ from __future__ import annotations +import os import re from argparse import ArgumentError, ArgumentParser, Namespace from pathlib import Path @@ -58,4 +59,4 @@ def test_empty_report(tox_project: ToxProjectCreator) -> None: outcome = proj.run("exec", "-qq", "--", "python", "-c", "print('foo')") outcome.assert_success() - outcome.assert_out_err("foo\n", "") + outcome.assert_out_err(f"foo{os.linesep}", "")