@@ -105,6 +105,19 @@ def test__normalize_path_give_up() -> None:
105
105
assert "any-path" in norm_path
106
106
107
107
108
+ class FakeEnv (mock .MagicMock ):
109
+ _get_env = nox .virtualenv .VirtualEnv ._get_env
110
+
111
+
112
+ def make_fake_env (venv_backend : str = "venv" , ** kwargs : Any ) -> FakeEnv :
113
+ return FakeEnv (
114
+ spec = nox .virtualenv .VirtualEnv ,
115
+ env = {},
116
+ venv_backend = venv_backend ,
117
+ ** kwargs ,
118
+ )
119
+
120
+
108
121
class TestSession :
109
122
def make_session_and_runner (
110
123
self ,
@@ -122,11 +135,8 @@ def make_session_and_runner(
122
135
),
123
136
manifest = mock .create_autospec (nox .manifest .Manifest ),
124
137
)
125
- runner .venv = mock .create_autospec (nox .virtualenv .VirtualEnv )
126
- assert runner .venv
127
- runner .venv .env = {}
128
- runner .venv .bin_paths = ["/no/bin/for/you" ] # type: ignore[misc]
129
- runner .venv .venv_backend = "venv" # type: ignore[misc]
138
+ runner .venv = make_fake_env (bin_paths = ["/no/bin/for/you" ])
139
+ assert isinstance (runner .venv , nox .virtualenv .VirtualEnv )
130
140
return nox .sessions .Session (runner = runner ), runner
131
141
132
142
def test_create_tmp (self ) -> None :
@@ -750,10 +760,8 @@ def test_install(self) -> None:
750
760
global_config = _options .options .namespace (posargs = []),
751
761
manifest = mock .create_autospec (nox .manifest .Manifest ),
752
762
)
753
- runner .venv = mock .create_autospec (nox .virtualenv .VirtualEnv )
754
- assert runner .venv
755
- runner .venv .env = {}
756
- runner .venv .venv_backend = "venv" # type: ignore[misc]
763
+ runner .venv = make_fake_env ()
764
+ assert isinstance (runner .venv , nox .virtualenv .VirtualEnv )
757
765
758
766
class SessionNoSlots (nox .sessions .Session ):
759
767
pass
@@ -782,10 +790,8 @@ def test_install_non_default_kwargs(self) -> None:
782
790
global_config = _options .options .namespace (posargs = []),
783
791
manifest = mock .create_autospec (nox .manifest .Manifest ),
784
792
)
785
- runner .venv = mock .create_autospec (nox .virtualenv .VirtualEnv )
786
- assert runner .venv
787
- runner .venv .env = {}
788
- runner .venv .venv_backend = "venv" # type: ignore[misc]
793
+ runner .venv = make_fake_env ()
794
+ assert isinstance (runner .venv , nox .virtualenv .VirtualEnv )
789
795
790
796
class SessionNoSlots (nox .sessions .Session ):
791
797
pass
@@ -936,10 +942,9 @@ def test_install_uv(self) -> None:
936
942
global_config = _options .options .namespace (posargs = []),
937
943
manifest = mock .create_autospec (nox .manifest .Manifest ),
938
944
)
939
- runner .venv = mock .create_autospec (nox .virtualenv .VirtualEnv )
940
- assert runner .venv
941
- runner .venv .env = {}
942
- runner .venv .venv_backend = "uv" # type: ignore[misc]
945
+ runner .venv = make_fake_env (venv_backend = "uv" )
946
+ assert isinstance (runner .venv , nox .virtualenv .VirtualEnv )
947
+ assert runner .venv .venv_backend == "uv"
943
948
944
949
class SessionNoSlots (nox .sessions .Session ):
945
950
pass
@@ -965,10 +970,9 @@ def test_install_uv_command(self, monkeypatch: pytest.MonkeyPatch) -> None:
965
970
global_config = _options .options .namespace (posargs = []),
966
971
manifest = mock .create_autospec (nox .manifest .Manifest ),
967
972
)
968
- runner .venv = mock .create_autospec (nox .virtualenv .VirtualEnv )
969
- assert runner .venv
970
- runner .venv .env = {}
971
- runner .venv .venv_backend = "uv" # type: ignore[misc]
973
+ runner .venv = make_fake_env (venv_backend = "uv" )
974
+ assert isinstance (runner .venv , nox .virtualenv .VirtualEnv )
975
+ assert runner .venv .venv_backend == "uv"
972
976
973
977
class SessionNoSlots (nox .sessions .Session ):
974
978
pass
@@ -1241,9 +1245,8 @@ def test__reuse_venv_invalid(self) -> None:
1241
1245
def make_runner_with_mock_venv (self ) -> nox .sessions .SessionRunner :
1242
1246
runner = self .make_runner ()
1243
1247
runner ._create_venv = mock .Mock () # type: ignore[method-assign]
1244
- runner .venv = mock .create_autospec (nox .virtualenv .VirtualEnv )
1245
- assert runner .venv
1246
- runner .venv .env = {}
1248
+ runner .venv = make_fake_env ()
1249
+ assert isinstance (runner .venv , nox .virtualenv .VirtualEnv )
1247
1250
return runner
1248
1251
1249
1252
def test_execute_noop_success (self , caplog : pytest .LogCaptureFixture ) -> None :
0 commit comments