summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAdrian Freund <git@freundtech.com>2021-05-04 18:36:45 +0200
committerGitHub <noreply@github.com>2021-05-04 17:36:45 +0100
commitcc91e3f8a3ccda4673128c8ac26b69e8500efa7a (patch)
treed4fb20f9d3df7a5c632a7ed980ae81f0f98daac3 /tests
parent24f9a7faa6314b83ccd1fd6469adb90e6b43c3f0 (diff)
downloadvirtualenv-cc91e3f8a3ccda4673128c8ac26b69e8500efa7a.tar.gz
Fix site.getsitepackages() ignoring --system-site-packages on python2 (#2107)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/create/test_creator.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/unit/create/test_creator.py b/tests/unit/create/test_creator.py
index 35f3f24..69c7c96 100644
--- a/tests/unit/create/test_creator.py
+++ b/tests/unit/create/test_creator.py
@@ -1,5 +1,6 @@
from __future__ import absolute_import, unicode_literals
+import ast
import difflib
import gc
import json
@@ -621,3 +622,34 @@ def test_pth_in_site_vs_PYTHONPATH(tmp_path):
env=env,
)
assert out == "ok\n"
+
+
+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))])
+ out = subprocess.check_output(
+ [str(session.creator.exe), "-c", r"import site; print(site.getsitepackages())"],
+ universal_newlines=True,
+ )
+ site_packages = ast.literal_eval(out)
+
+ for system_site_package in system_site_packages:
+ assert system_site_package not in site_packages
+
+ # Test with --system-site-packages
+ session = cli_run([ensure_text(str(tmp_path)), "--system-site-packages"])
+ out = subprocess.check_output(
+ [str(session.creator.exe), "-c", r"import site; print(site.getsitepackages())"],
+ universal_newlines=True,
+ )
+ site_packages = ast.literal_eval(out)
+
+ for system_site_package in system_site_packages:
+ assert system_site_package in site_packages