Fix test_sysconfig when prefix != exec-prefix (#9100).

Reported by Zsolt Cserna.
This commit is contained in:
Éric Araujo 2011-10-08 02:49:12 +02:00
parent 5fb16cd1d2
commit 1a1a8a0e31
1 changed files with 8 additions and 5 deletions

View File

@ -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 unittest
import sys import sys
import os import os
@ -259,8 +255,15 @@ class TestSysConfig(unittest.TestCase):
# is similar to the global posix_prefix one # is similar to the global posix_prefix one
base = get_config_var('base') base = get_config_var('base')
user = get_config_var('userbase') 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'): for name in ('stdlib', 'platstdlib', 'purelib', 'platlib'):
global_path = get_path(name, 'posix_prefix') 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') user_path = get_path(name, 'posix_user')
self.assertEqual(user_path, global_path.replace(base, user, 1)) self.assertEqual(user_path, global_path.replace(base, user, 1))