summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernát Gábor <bgabor8@bloomberg.net>2020-11-28 11:33:35 +0000
committerBernát Gábor <bgabor8@bloomberg.net>2020-11-28 11:33:35 +0000
commit5c55bedfb187ec62e4b15e997e86727d70d334f0 (patch)
tree00d74d4d1f00b31fc36f55220c9a82286dc8cb96
parent8845e561c59d57c181f27d42e04b7810c41929be (diff)
downloadtox-git-5c55bedfb187ec62e4b15e997e86727d70d334f0.tar.gz
tests: add test for the sequential run failing
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
-rw-r--r--tests/session/cmd/test_sequential.py (renamed from tests/session/cmd/run/test_tox_env_runner.py)21
1 files changed, 18 insertions, 3 deletions
diff --git a/tests/session/cmd/run/test_tox_env_runner.py b/tests/session/cmd/test_sequential.py
index 91970f1a..ff01b151 100644
--- a/tests/session/cmd/run/test_tox_env_runner.py
+++ b/tests/session/cmd/test_sequential.py
@@ -4,27 +4,42 @@ import sys
from typing import Any, Dict, List, Tuple
import pytest
+from re_assert import Matches
from virtualenv.discovery.py_info import PythonInfo
from tox import __version__
from tox.pytest import ToxProjectCreator
-def test_ignore_cmd(tox_project: ToxProjectCreator) -> None:
+def test_run_ignore_cmd_exit_code(tox_project: ToxProjectCreator) -> None:
cmd = [
"- python -c 'import sys; print(\"magic fail\", file=sys.stderr); sys.exit(1)'",
"python -c 'import sys; print(\"magic pass\"); sys.exit(0)'",
]
- project = tox_project({"tox.ini": f"[tox]\nenvlist=py\nno_package=true\n[testenv]\ncommands={cmd[0]}\n {cmd[1]}"})
+ project = tox_project({"tox.ini": f"[tox]\nno_package=true\n[testenv]\ncommands={cmd[0]}\n {cmd[1]}"})
outcome = project.run("r", "-e", "py")
outcome.assert_success()
assert "magic pass" in outcome.out
assert "magic fail" in outcome.err
+def test_run_sequential_fail(tox_project: ToxProjectCreator) -> None:
+ def _cmd(value: int) -> str:
+ return f"python -c 'import sys; print(\"exit {value}\"); sys.exit({value})'"
+
+ ini = f"[tox]\nenv_list=a,b\nno_package=true\n[testenv:a]\ncommands={_cmd(1)}\n[testenv:b]\ncommands={_cmd(0)}"
+ project = tox_project({"tox.ini": ini})
+ outcome = project.run("r", "-e", "a,b")
+ outcome.assert_failed()
+ reports = outcome.out.splitlines()[-3:]
+ assert Matches(r" evaluation failed :\( \(.* seconds\)") == reports[-1]
+ assert Matches(r" b: OK \(.*=setup\[.*\]\+cmd\[.*\] seconds\)") == reports[-2]
+ assert Matches(r" a: FAIL code 1\(.*=setup\[.*\]\+cmd\[.*\] seconds\)") == reports[-3]
+
+
@pytest.mark.timeout(60)
@pytest.mark.integration
-def test_result_json_run_one(tox_project: ToxProjectCreator) -> None:
+def test_result_json_sequential(tox_project: ToxProjectCreator) -> None:
cmd = [
"- python -c 'import sys; print(\"magic fail\", file=sys.stderr); sys.exit(1)'",
"python -c 'import sys; print(\"magic pass\"); sys.exit(0)'",