Skip to content

Commit 6cd9257

Browse files
committed
test bad version & failed install for uv
1 parent cf38f58 commit 6cd9257

File tree

1 file changed

+34
-5
lines changed

1 file changed

+34
-5
lines changed

tests/test_virtualenv.py

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1633,24 +1633,53 @@ def mock_install(*args: Any, **kwargs: Any) -> None:
16331633

16341634
@pytest.mark.parametrize("download_python", ["always", "auto"])
16351635
@mock.patch("nox.virtualenv.HAS_UV", new=True)
1636-
@mock.patch("nox.virtualenv.UV_VERSION", new=version.Version("0.5.0"))
1636+
@mock.patch("nox.virtualenv.UV_VERSION", new=version.Version("0.6.0"))
1637+
@mock.patch("nox.virtualenv.uv_install_python", return_value=False)
1638+
@mock.patch.object(shutil, "which", return_value=None)
1639+
def test_download_python_uv_failed_install(
1640+
which: mock.Mock,
1641+
uv_install_mock: mock.Mock,
1642+
download_python: str,
1643+
make_one: Callable[..., tuple[VirtualEnv, Path]],
1644+
) -> None:
1645+
"""uv bad version"""
1646+
venv, _ = make_one(
1647+
interpreter="python3.11",
1648+
venv_backend="uv",
1649+
download_python=download_python,
1650+
)
1651+
1652+
with pytest.raises(nox.virtualenv.InterpreterNotFound):
1653+
_ = venv._resolved_interpreter
1654+
uv_install_mock.assert_called_once()
1655+
1656+
if download_python == "always":
1657+
which.assert_not_called()
1658+
else: # auto
1659+
which.assert_any_call("python3.11")
1660+
1661+
1662+
@pytest.mark.parametrize("download_python", ["always", "auto"])
1663+
@mock.patch("nox.virtualenv.HAS_UV", new=True)
1664+
@mock.patch("nox.virtualenv.UV_VERSION", new=version.Version("0.4.0"))
16371665
@mock.patch("nox.virtualenv.uv_install_python", return_value=True)
16381666
@mock.patch.object(shutil, "which", return_value=None)
1639-
def test_download_python_uv_success(
1667+
def test_download_python_uv_bad_version(
16401668
which: mock.Mock,
16411669
uv_install_mock: mock.Mock,
16421670
download_python: str,
16431671
make_one: Callable[..., tuple[VirtualEnv, Path]],
16441672
) -> None:
1645-
"""uv install success case"""
1673+
"""uv bad version"""
16461674
venv, _ = make_one(
16471675
interpreter="python3.11",
16481676
venv_backend="uv",
16491677
download_python=download_python,
16501678
)
16511679

1652-
assert venv._resolved_interpreter == "python3.11"
1653-
uv_install_mock.assert_called_once_with("python3.11")
1680+
with pytest.raises(nox.virtualenv.InterpreterNotFound):
1681+
_ = venv._resolved_interpreter
1682+
uv_install_mock.assert_not_called()
16541683

16551684
if download_python == "always":
16561685
which.assert_not_called()

0 commit comments

Comments
 (0)