summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernat Gabor <bgabor8@bloomberg.net>2020-01-10 17:31:09 +0000
committerBernat Gabor <bgabor8@bloomberg.net>2020-01-10 17:33:13 +0000
commit3bdba7312009913135eefdff404999950aaa52f7 (patch)
tree2f2c08766daaa01d6f3aac0540866f31767db127
parent5acb992f775912e64439e0d09aa87086b284aa0d (diff)
downloadvirtualenv-3bdba7312009913135eefdff404999950aaa52f7.tar.gz
fix errors under CPython 3.4 on Windows
-rw-r--r--src/virtualenv/util/path/_pathlib/__init__.py5
-rw-r--r--tests/unit/interpreters/create/test_creator.py4
2 files changed, 8 insertions, 1 deletions
diff --git a/src/virtualenv/util/path/_pathlib/__init__.py b/src/virtualenv/util/path/_pathlib/__init__.py
index 3b18d3d..29a8c6b 100644
--- a/src/virtualenv/util/path/_pathlib/__init__.py
+++ b/src/virtualenv/util/path/_pathlib/__init__.py
@@ -28,6 +28,11 @@ if six.PY3:
with self.open(mode="w", encoding=encoding, errors=errors) as f:
return f.write(data)
+ def mkdir(self, mode=0o777, parents=False, exist_ok=False):
+ if exist_ok and self.exists():
+ return
+ super(type(BuiltinPath()), self).mkdir(mode, parents)
+
else:
if sys.platform == "win32":
diff --git a/tests/unit/interpreters/create/test_creator.py b/tests/unit/interpreters/create/test_creator.py
index 9ca3c37..4a58d31 100644
--- a/tests/unit/interpreters/create/test_creator.py
+++ b/tests/unit/interpreters/create/test_creator.py
@@ -81,7 +81,7 @@ def system():
@pytest.mark.parametrize(
"use_venv", [False, True] if six.PY3 else [False], ids=["no_venv", "venv"] if six.PY3 else ["no_venv"]
)
-def test_create_no_seed(python, use_venv, global_access, system, coverage_env, special_name_dir):
+def test_create(python, use_venv, global_access, system, coverage_env, special_name_dir):
dest = special_name_dir
cmd = [
"-v",
@@ -190,6 +190,8 @@ def test_debug_bad_virtualenv(tmp_path):
)
@pytest.mark.parametrize("clear", [True, False], ids=["clear", "no_clear"])
def test_create_clear_resets(tmp_path, use_venv, clear):
+ if sys.version_info[0:2] == (3, 4) and use_venv and clear is False and CURRENT.implementation == "CPython":
+ pytest.skip("python 3.4 does not support overwrite venv without clear")
marker = tmp_path / "magic"
cmd = [str(tmp_path), "--seeder", "none", "--creator", "venv" if use_venv else "builtin"]
run_via_cli(cmd)