summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorStephen Finucane <stephen@that.guru>2023-01-06 15:40:41 +0000
committerGitHub <noreply@github.com>2023-01-06 07:40:41 -0800
commitc790c60a214bbcf1da203aee96c60aa0bc4411d1 (patch)
treecc8dc7f3f5a51fe07f188aad88eb979239d0934e /tests
parentaf35384bb2eeb13e1a023ce9f0e9530adafa63dd (diff)
downloadtox-git-c790c60a214bbcf1da203aee96c60aa0bc4411d1.tar.gz
Fix various issues with missing interpreters (#2828)
fix https://github.com/tox-dev/tox/issues/2811
Diffstat (limited to 'tests')
-rw-r--r--tests/session/cmd/test_depends.py6
-rw-r--r--tests/session/cmd/test_sequential.py4
-rw-r--r--tests/tox_env/python/test_python_runner.py37
3 files changed, 39 insertions, 8 deletions
diff --git a/tests/session/cmd/test_depends.py b/tests/session/cmd/test_depends.py
index 6b27d3bc..7c9040ea 100644
--- a/tests/session/cmd/test_depends.py
+++ b/tests/session/cmd/test_depends.py
@@ -34,18 +34,18 @@ def test_depends(tox_project: ToxProjectCreator, patch_prev_py: Callable[[bool],
py ~ .pkg
{py} ~ .pkg
{prev_py} ~ .pkg | .pkg-{impl}{prev_ver}
- py31 ~ .pkg | ... (could not resolve base python with py31)
+ py31 ~ .pkg | ... (could not find python interpreter with spec(s): py31)
cov2
cov
py ~ .pkg
{py} ~ .pkg
{prev_py} ~ .pkg | .pkg-{impl}{prev_ver}
- py31 ~ .pkg | ... (could not resolve base python with py31)
+ py31 ~ .pkg | ... (could not find python interpreter with spec(s): py31)
cov
py ~ .pkg
{py} ~ .pkg
{prev_py} ~ .pkg | .pkg-{impl}{prev_ver}
- py31 ~ .pkg | ... (could not resolve base python with py31)
+ py31 ~ .pkg | ... (could not find python interpreter with spec(s): py31)
"""
assert outcome.out == dedent(expected).lstrip()
diff --git a/tests/session/cmd/test_sequential.py b/tests/session/cmd/test_sequential.py
index 0825110e..8672234a 100644
--- a/tests/session/cmd/test_sequential.py
+++ b/tests/session/cmd/test_sequential.py
@@ -224,7 +224,7 @@ def test_missing_interpreter_skip_on(tox_project: ToxProjectCreator) -> None:
proj = tox_project({"tox.ini": ini})
result = proj.run("r")
- result.assert_success()
+ result.assert_failed()
assert "py: SKIP" in result.out
@@ -367,7 +367,7 @@ def test_platform_does_not_match_run_env(tox_project: ToxProjectCreator) -> None
proj = tox_project({"tox.ini": ini})
result = proj.run("r")
- result.assert_success()
+ result.assert_failed()
exp = f"py: skipped because platform {sys.platform} does not match wrong_platform"
assert exp in result.out
diff --git a/tests/tox_env/python/test_python_runner.py b/tests/tox_env/python/test_python_runner.py
index eca65b2d..33de626a 100644
--- a/tests/tox_env/python/test_python_runner.py
+++ b/tests/tox_env/python/test_python_runner.py
@@ -128,8 +128,39 @@ def test_extras_are_normalized(
("config", "cli", "expected"),
[("false", "true", True), ("true", "false", False), ("false", "config", False), ("true", "config", True)],
)
-def test_config_skip_missing_interpreters(tox_project: ToxProjectCreator, config: str, cli: str, expected: str) -> None:
+def test_config_skip_missing_interpreters(
+ tox_project: ToxProjectCreator,
+ config: str,
+ cli: str,
+ expected: bool,
+) -> None:
py_ver = ".".join(str(i) for i in sys.version_info[0:2])
project = tox_project({"tox.ini": f"[tox]\nenvlist=py4,py{py_ver}\nskip_missing_interpreters={config}"})
- result = project.run("--skip-missing-interpreters", cli)
- assert result.code == 0 if expected else 1
+ result = project.run(f"--skip-missing-interpreters={cli}")
+ assert result.code == (0 if expected else -1)
+
+
+@pytest.mark.parametrize(
+ ("skip", "env", "retcode"),
+ [
+ ("true", f"py{''.join(str(i) for i in sys.version_info[0:2])}", 0),
+ ("false", f"py{''.join(str(i) for i in sys.version_info[0:2])}", 0),
+ ("true", "py31", -1),
+ ("false", "py31", 1),
+ ("true", None, 0),
+ ("false", None, -1),
+ ],
+)
+def test_skip_missing_interpreters_specified_env(
+ tox_project: ToxProjectCreator,
+ skip: str,
+ env: str | None,
+ retcode: int,
+) -> None:
+ py_ver = "".join(str(i) for i in sys.version_info[0:2])
+ project = tox_project({"tox.ini": f"[tox]\nenvlist=py31,py{py_ver}\n[testenv]\nusedevelop=true"})
+ args = [f"--skip-missing-interpreters={skip}"]
+ if env:
+ args += ["-e", env]
+ result = project.run(*args)
+ assert result.code == retcode