@@ -1633,24 +1633,53 @@ def mock_install(*args: Any, **kwargs: Any) -> None:
1633
1633
1634
1634
@pytest .mark .parametrize ("download_python" , ["always" , "auto" ])
1635
1635
@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" ))
1637
1665
@mock .patch ("nox.virtualenv.uv_install_python" , return_value = True )
1638
1666
@mock .patch .object (shutil , "which" , return_value = None )
1639
- def test_download_python_uv_success (
1667
+ def test_download_python_uv_bad_version (
1640
1668
which : mock .Mock ,
1641
1669
uv_install_mock : mock .Mock ,
1642
1670
download_python : str ,
1643
1671
make_one : Callable [..., tuple [VirtualEnv , Path ]],
1644
1672
) -> None :
1645
- """uv install success case """
1673
+ """uv bad version """
1646
1674
venv , _ = make_one (
1647
1675
interpreter = "python3.11" ,
1648
1676
venv_backend = "uv" ,
1649
1677
download_python = download_python ,
1650
1678
)
1651
1679
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 ()
1654
1683
1655
1684
if download_python == "always" :
1656
1685
which .assert_not_called ()
0 commit comments