diff options
| author | Stephen Finucane <stephen@that.guru> | 2023-01-06 15:40:41 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-06 07:40:41 -0800 |
| commit | c790c60a214bbcf1da203aee96c60aa0bc4411d1 (patch) | |
| tree | cc8dc7f3f5a51fe07f188aad88eb979239d0934e /tests | |
| parent | af35384bb2eeb13e1a023ce9f0e9530adafa63dd (diff) | |
| download | tox-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.py | 6 | ||||
| -rw-r--r-- | tests/session/cmd/test_sequential.py | 4 | ||||
| -rw-r--r-- | tests/tox_env/python/test_python_runner.py | 37 |
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 |
