diff options
author | Adrian Freund <git@freundtech.com> | 2021-05-04 18:36:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-04 17:36:45 +0100 |
commit | cc91e3f8a3ccda4673128c8ac26b69e8500efa7a (patch) | |
tree | d4fb20f9d3df7a5c632a7ed980ae81f0f98daac3 /tests | |
parent | 24f9a7faa6314b83ccd1fd6469adb90e6b43c3f0 (diff) | |
download | virtualenv-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.py | 32 |
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 |