Commit 5d0c7965 by Arun Babu Neelicattu

utils/env: ensure user directories are created

parent e9e6b324
...@@ -131,7 +131,7 @@ class EditableBuilder(Builder): ...@@ -131,7 +131,7 @@ class EditableBuilder(Builder):
entry_points = self.convert_entry_points() entry_points = self.convert_entry_points()
for scripts_path in self._env.script_dirs: for scripts_path in self._env.script_dirs:
if is_dir_writable(scripts_path): if is_dir_writable(path=scripts_path, create=True):
break break
else: else:
self._io.error_line( self._io.error_line(
......
...@@ -170,7 +170,7 @@ class SitePackages: ...@@ -170,7 +170,7 @@ class SitePackages:
self._writable_candidates = [] self._writable_candidates = []
for candidate in self._candidates: for candidate in self._candidates:
if not is_dir_writable(candidate): if not is_dir_writable(path=candidate, create=True):
continue continue
self._writable_candidates.append(candidate) self._writable_candidates.append(candidate)
......
...@@ -5,7 +5,9 @@ from poetry.utils._compat import decode ...@@ -5,7 +5,9 @@ from poetry.utils._compat import decode
from poetry.utils.env import SitePackages from poetry.utils.env import SitePackages
def test_env_site_simple(tmp_dir): def test_env_site_simple(tmp_dir, mocker):
# emulate permission error when creating directory
mocker.patch("poetry.utils._compat.Path.mkdir", side_effect=OSError())
site_packages = SitePackages(Path("/non-existent"), fallbacks=[Path(tmp_dir)]) site_packages = SitePackages(Path("/non-existent"), fallbacks=[Path(tmp_dir)])
candidates = site_packages.make_candidates(Path("hello.txt"), writable_only=True) candidates = site_packages.make_candidates(Path("hello.txt"), writable_only=True)
hello = Path(tmp_dir) / "hello.txt" hello = Path(tmp_dir) / "hello.txt"
......
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