Skip to content

Commit 6a4174e

Browse files
authored
Let tox run fail when all envs are skipped (#2206)
1 parent 8cdcc06 commit 6a4174e

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

docs/changelog/2195.feature.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Let tox run fail when all envs are skipped -- by :user:`jugmac00`.

src/tox/session/cmd/run/common.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,10 @@ def report(start: float, runs: List[ToxEnvRunResult], is_colored: bool) -> int:
144144
def _print(color_: int, message: str) -> None:
145145
print(f"{color_ if is_colored else ''}{message}{Fore.RESET if is_colored else ''}")
146146

147-
all_good = True
147+
successful, skipped = [], []
148148
for run in runs:
149-
all_good &= run.code == Outcome.OK or run.ignore_outcome
149+
successful.append(run.code == Outcome.OK or run.ignore_outcome)
150+
skipped.append(run.skipped)
150151
duration_individual = [o.elapsed for o in run.outcomes]
151152
extra = f"+cmd[{','.join(f'{i:.2f}' for i in duration_individual)}]" if duration_individual else ""
152153
setup = run.duration - sum(duration_individual)
@@ -155,6 +156,7 @@ def _print(color_: int, message: str) -> None:
155156
_print(color, out)
156157

157158
duration = time.monotonic() - start
159+
all_good = all(successful) and not all(skipped)
158160
if all_good:
159161
_print(Fore.GREEN, f" congratulations :) ({duration:.2f} seconds)")
160162
return Outcome.OK

tests/session/cmd/test_sequential.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ def test_platform_does_not_match_package_env(tox_project: ToxProjectCreator, dem
410410
ini = "[testenv]\npackage=wheel\n[testenv:.pkg]\nplatform=wrong_platform"
411411
proj = tox_project({"tox.ini": ini, "pyproject.toml": toml, "build.py": build})
412412
result = proj.run("r", "-e", "a,b")
413-
result.assert_success()
413+
result.assert_failed() # tox run fails as all envs are skipped
414414
assert "a: SKIP" in result.out
415415
assert "b: SKIP" in result.out
416416
msg = f"skipped because platform {sys.platform} does not match wrong_platform for package environment .pkg"

0 commit comments

Comments
 (0)