|
1 | 1 | from __future__ import absolute_import, unicode_literals |
2 | 2 |
|
| 3 | +import ast |
3 | 4 | import difflib |
4 | 5 | import gc |
5 | 6 | import json |
@@ -621,3 +622,34 @@ def test_pth_in_site_vs_PYTHONPATH(tmp_path): |
621 | 622 | env=env, |
622 | 623 | ) |
623 | 624 | assert out == "ok\n" |
| 625 | + |
| 626 | + |
| 627 | +def test_getsitepackages_system_site(tmp_path): |
| 628 | + import site |
| 629 | + |
| 630 | + old_prefixes = site.PREFIXES |
| 631 | + site.PREFIXES = [sys.base_prefix, sys.base_exec_prefix] |
| 632 | + system_site_packages = site.getsitepackages() |
| 633 | + site.PREFIXES = old_prefixes |
| 634 | + |
| 635 | + # Test without --system-site-packages |
| 636 | + session = cli_run([ensure_text(str(tmp_path))]) |
| 637 | + out = subprocess.check_output( |
| 638 | + [str(session.creator.exe), "-c", r"import site; print(site.getsitepackages())"], |
| 639 | + universal_newlines=True, |
| 640 | + ) |
| 641 | + site_packages = ast.literal_eval(out) |
| 642 | + |
| 643 | + for system_site_package in system_site_packages: |
| 644 | + assert system_site_package not in site_packages |
| 645 | + |
| 646 | + # Test with --system-site-packages |
| 647 | + session = cli_run([ensure_text(str(tmp_path)), "--system-site-packages"]) |
| 648 | + out = subprocess.check_output( |
| 649 | + [str(session.creator.exe), "-c", r"import site; print(site.getsitepackages())"], |
| 650 | + universal_newlines=True, |
| 651 | + ) |
| 652 | + site_packages = ast.literal_eval(out) |
| 653 | + |
| 654 | + for system_site_package in system_site_packages: |
| 655 | + assert system_site_package in site_packages |
0 commit comments