Commit f594246c by Randy Döring Committed by GitHub

env: installing into `MockEnv` should not have side effects on another env (#7141)

MockEnv should not use paths of SystemEnv for paths that may be written to
parent b2e20458
...@@ -2039,6 +2039,17 @@ class MockEnv(NullEnv): ...@@ -2039,6 +2039,17 @@ class MockEnv(NullEnv):
return self._sys_path return self._sys_path
@property
def paths(self) -> dict[str, str]:
if self._paths is None:
self._paths = self.get_paths()
self._paths["platlib"] = str(self._path / "platlib")
self._paths["purelib"] = str(self._path / "purelib")
self._paths["scripts"] = str(self._path / "scripts")
self._paths["data"] = str(self._path / "data")
return self._paths
def get_marker_env(self) -> dict[str, Any]: def get_marker_env(self) -> dict[str, Any]:
if self._mock_marker_env is not None: if self._mock_marker_env is not None:
return self._mock_marker_env return self._mock_marker_env
......
...@@ -291,16 +291,6 @@ def test_builder_should_execute_build_scripts( ...@@ -291,16 +291,6 @@ def test_builder_should_execute_build_scripts(
mocker: MockerFixture, extended_without_setup_poetry: Poetry, tmp_path: Path mocker: MockerFixture, extended_without_setup_poetry: Poetry, tmp_path: Path
): ):
env = MockEnv(path=tmp_path / "foo") env = MockEnv(path=tmp_path / "foo")
site_packages_dir = tmp_path / "site-packages"
site_packages_dir.mkdir(parents=True, exist_ok=True)
mocker.patch.object(
env,
"get_paths",
return_value={
"purelib": str(site_packages_dir),
"platlib": str(site_packages_dir),
},
)
mocker.patch( mocker.patch(
"poetry.masonry.builders.editable.build_environment" "poetry.masonry.builders.editable.build_environment"
).return_value.__enter__.return_value = env ).return_value.__enter__.return_value = env
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment