summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAdrian Freund <adrian@freund.io>2021-05-05 19:26:30 +0200
committerGitHub <noreply@github.com>2021-05-05 18:26:30 +0100
commit7bfd44410ee955f74645d72205ccbb07b14b9110 (patch)
treea314c0abedee3ef1e023922045892b4f4f661d5e /tests
parent2a080a0d912e3378382fe2615b18e841482ffd63 (diff)
downloadvirtualenv-7bfd44410ee955f74645d72205ccbb07b14b9110.tar.gz
Fix site.getsitepackages() broken on python2 on debian (#2108)
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/create/test_creator.py43
1 files changed, 36 insertions, 7 deletions
diff --git a/tests/unit/create/test_creator.py b/tests/unit/create/test_creator.py
index 69c7c96..e51833f 100644
--- a/tests/unit/create/test_creator.py
+++ b/tests/unit/create/test_creator.py
@@ -7,6 +7,7 @@ import json
import logging
import os
import shutil
+import site
import stat
import subprocess
import sys
@@ -625,15 +626,11 @@ def test_pth_in_site_vs_PYTHONPATH(tmp_path):
def test_getsitepackages_system_site(tmp_path):
- import site
-
- old_prefixes = site.PREFIXES
- site.PREFIXES = [sys.base_prefix, sys.base_exec_prefix]
- system_site_packages = site.getsitepackages()
- site.PREFIXES = old_prefixes
-
# Test without --system-site-packages
session = cli_run([ensure_text(str(tmp_path))])
+
+ system_site_packages = get_expected_system_site_packages(session)
+
out = subprocess.check_output(
[str(session.creator.exe), "-c", r"import site; print(site.getsitepackages())"],
universal_newlines=True,
@@ -645,6 +642,9 @@ def test_getsitepackages_system_site(tmp_path):
# Test with --system-site-packages
session = cli_run([ensure_text(str(tmp_path)), "--system-site-packages"])
+
+ system_site_packages = get_expected_system_site_packages(session)
+
out = subprocess.check_output(
[str(session.creator.exe), "-c", r"import site; print(site.getsitepackages())"],
universal_newlines=True,
@@ -653,3 +653,32 @@ def test_getsitepackages_system_site(tmp_path):
for system_site_package in system_site_packages:
assert system_site_package in site_packages
+
+
+def get_expected_system_site_packages(session):
+ base_prefix = session.creator.pyenv_cfg["base-prefix"]
+ base_exec_prefix = session.creator.pyenv_cfg["base-exec-prefix"]
+ old_prefixes = site.PREFIXES
+ site.PREFIXES = [base_prefix, base_exec_prefix]
+ system_site_packages = site.getsitepackages()
+ site.PREFIXES = old_prefixes
+
+ return system_site_packages
+
+
+def test_get_site_packages(tmp_path):
+ case_sensitive = fs_is_case_sensitive()
+ session = cli_run([ensure_text(str(tmp_path))])
+ env_site_packages = [str(session.creator.purelib), str(session.creator.platlib)]
+ out = subprocess.check_output(
+ [str(session.creator.exe), "-c", r"import site; print(site.getsitepackages())"],
+ universal_newlines=True,
+ )
+ site_packages = ast.literal_eval(out)
+
+ if not case_sensitive:
+ env_site_packages = [x.lower() for x in env_site_packages]
+ site_packages = [x.lower() for x in site_packages]
+
+ for env_site_package in env_site_packages:
+ assert env_site_package in site_packages