Skip to content

Commit 1dceb7a

Browse files
committed
Parameterize interpreter test
1 parent 94abad1 commit 1dceb7a

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

tests/test_interpreter.py

+14-17
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import os
21
import shutil
32
import subprocess
43
import sys
@@ -14,23 +13,18 @@
1413
from pipx.util import PipxError
1514

1615

17-
def py_which(name):
18-
if name == "py":
16+
@pytest.mark.parametrize("venv", [True, False])
17+
def test_windows_python_with_version(monkeypatch, venv):
18+
def which(name):
1919
return "py"
2020

21-
22-
def test_windows_python_with_version_no_venv(monkeypatch):
23-
monkeypatch.setattr(pipx.interpreter, "has_venv", lambda: False)
24-
monkeypatch.setattr(shutil, "which", py_which)
25-
assert find_py_launcher_python("3.9") == "py"
26-
assert os.environ.get("PY_PYTHON") == "3.9"
27-
28-
29-
def test_windows_python_with_version_with_venv(monkeypatch):
30-
monkeypatch.setattr(pipx.interpreter, "has_venv", lambda: True)
31-
monkeypatch.setattr(shutil, "which", py_which)
32-
assert find_py_launcher_python("3.9") == "py"
33-
assert os.environ.get("PY_PYTHON") == "3.9"
21+
major = sys.version_info.major
22+
minor = sys.version_info.minor
23+
monkeypatch.setattr(pipx.interpreter, "has_venv", lambda: venv)
24+
monkeypatch.setattr(shutil, "which", which)
25+
assert find_py_launcher_python(f"{major}.{minor}").endswith(
26+
f"Python{major}{minor}\\python.exe"
27+
)
3428

3529

3630
def test_windows_python_no_version_with_venv(monkeypatch):
@@ -39,8 +33,11 @@ def test_windows_python_no_version_with_venv(monkeypatch):
3933

4034

4135
def test_windows_python_no_version_no_venv_with_py(monkeypatch):
36+
def which(name):
37+
return "py"
38+
4239
monkeypatch.setattr(pipx.interpreter, "has_venv", lambda: False)
43-
monkeypatch.setattr(shutil, "which", py_which)
40+
monkeypatch.setattr(shutil, "which", which)
4441
assert _find_default_windows_python() == "py"
4542

4643

0 commit comments

Comments
 (0)