From de504550afc211dbc7c203fac0646f5e1329a158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Sat, 8 Oct 2011 01:55:07 +0200 Subject: [PATCH] Fix test_sysconfig when prefix != exec-prefix (#9100). I tested this manually; it would be great to have buildbots using installed Pythons, including Pythons configured with different prefix and exec-prefix. Reported by Zsolt Cserna. --- Lib/test/test_sysconfig.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index b2a3224b1a4..aabb6fa72a8 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -1,9 +1,5 @@ -"""Tests for 'site'. +"""Tests for sysconfig.""" -Tests assume the initial paths in sys.path once the interpreter has begun -executing have not been removed. - -""" import unittest import sys import os @@ -11,7 +7,7 @@ import shutil from copy import copy, deepcopy -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 @@ -265,8 +261,15 @@ def test_user_similar(self): # 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))