Merge fixes for #10526, #10359, #11254, #9100 and the bug without number
diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py
index 08b40a1..8058d0e 100644
--- a/Lib/test/test_sysconfig.py
+++ b/Lib/test/test_sysconfig.py
@@ -3,9 +3,9 @@
import os
import subprocess
import shutil
-from copy import copy, deepcopy
+from copy import copy
-from test.support import (run_unittest, TESTFN, unlink, get_attribute,
+from test.support import (run_unittest, TESTFN, unlink,
captured_stdout, skip_unless_symlink)
import sysconfig
@@ -256,8 +256,15 @@
# is similar to the global posix_prefix one
base = get_config_var('base')
user = get_config_var('userbase')
+ # the global scheme mirrors the distinction between prefix and
+ # exec-prefix but not the user scheme, so we have to adapt the paths
+ # before comparing (issue #9100)
+ adapt = sys.prefix != sys.exec_prefix
for name in ('stdlib', 'platstdlib', 'purelib', 'platlib'):
global_path = get_path(name, 'posix_prefix')
+ if adapt:
+ global_path = global_path.replace(sys.exec_prefix, sys.prefix)
+ base = base.replace(sys.exec_prefix, sys.prefix)
user_path = get_path(name, 'posix_user')
self.assertEqual(user_path, global_path.replace(base, user, 1))