annotate Lib/test/test_sysconfig.py @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents 27045f93e4cb
children 1d061f83a6bf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
72832
27045f93e4cb Fix test_sysconfig when prefix != exec-prefix (#9100).
Éric Araujo <merwok@netwok.org>
parents: 72153
diff changeset
1 """Tests for sysconfig."""
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
2
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
3 import unittest
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
4 import sys
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
5 import os
58766
734657b4b3e5 Add missing import.
Georg Brandl <georg@python.org>
parents: 58648
diff changeset
6 import shutil
59501
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
7 import subprocess
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
8 from copy import copy, deepcopy
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
9
59501
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
10 from test.test_support import run_unittest, TESTFN, unlink, get_attribute
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
11
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
12 import sysconfig
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
13 from sysconfig import (get_paths, get_platform, get_config_vars,
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
14 get_path, get_path_names, _INSTALL_SCHEMES,
58648
992cae246a0c sysconfig.get_scheme_names now returns a sorted tuple
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58472
diff changeset
15 _get_default_scheme, _expand_vars,
61764
021f5ec5d2d4 #8759: Fixed user paths in sysconfig for posix and os2 schemes
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 61421
diff changeset
16 get_scheme_names, get_config_var)
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
17
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
18 class TestSysConfig(unittest.TestCase):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
19
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
20 def setUp(self):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
21 """Make a copy of sys.path"""
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
22 super(TestSysConfig, self).setUp()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
23 self.sys_path = sys.path[:]
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
24 self.makefile = None
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
25 # patching os.uname
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
26 if hasattr(os, 'uname'):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
27 self.uname = os.uname
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
28 self._uname = os.uname()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
29 else:
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
30 self.uname = None
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
31 self._uname = None
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
32 os.uname = self._get_uname
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
33 # saving the environment
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
34 self.name = os.name
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
35 self.platform = sys.platform
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
36 self.version = sys.version
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
37 self.sep = os.sep
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
38 self.join = os.path.join
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
39 self.isabs = os.path.isabs
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
40 self.splitdrive = os.path.splitdrive
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
41 self._config_vars = copy(sysconfig._CONFIG_VARS)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
42 self.old_environ = deepcopy(os.environ)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
43
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
44 def tearDown(self):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
45 """Restore sys.path"""
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
46 sys.path[:] = self.sys_path
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
47 if self.makefile is not None:
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
48 os.unlink(self.makefile)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
49 self._cleanup_testfn()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
50 if self.uname is not None:
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
51 os.uname = self.uname
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
52 else:
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
53 del os.uname
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
54 os.name = self.name
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
55 sys.platform = self.platform
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
56 sys.version = self.version
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
57 os.sep = self.sep
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
58 os.path.join = self.join
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
59 os.path.isabs = self.isabs
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
60 os.path.splitdrive = self.splitdrive
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
61 sysconfig._CONFIG_VARS = copy(self._config_vars)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
62 for key, value in self.old_environ.items():
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
63 if os.environ.get(key) != value:
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
64 os.environ[key] = value
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
65
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
66 for key in os.environ.keys():
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
67 if key not in self.old_environ:
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
68 del os.environ[key]
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
69
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
70 super(TestSysConfig, self).tearDown()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
71
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
72 def _set_uname(self, uname):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
73 self._uname = uname
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
74
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
75 def _get_uname(self):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
76 return self._uname
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
77
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
78 def _cleanup_testfn(self):
58817
70e115c34f97 Remove unused imports in test modules.
Georg Brandl <georg@python.org>
parents: 58766
diff changeset
79 path = TESTFN
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
80 if os.path.isfile(path):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
81 os.remove(path)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
82 elif os.path.isdir(path):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
83 shutil.rmtree(path)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
84
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
85 def test_get_path_names(self):
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
86 self.assertEqual(get_path_names(), sysconfig._SCHEME_KEYS)
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
87
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
88 def test_get_paths(self):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
89 scheme = get_paths()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
90 default_scheme = _get_default_scheme()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
91 wanted = _expand_vars(default_scheme, None)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
92 wanted = wanted.items()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
93 wanted.sort()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
94 scheme = scheme.items()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
95 scheme.sort()
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
96 self.assertEqual(scheme, wanted)
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
97
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
98 def test_get_path(self):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
99 # xxx make real tests here
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
100 for scheme in _INSTALL_SCHEMES:
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
101 for name in _INSTALL_SCHEMES[scheme]:
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
102 res = get_path(name, scheme)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
103
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
104 def test_get_config_vars(self):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
105 cvars = get_config_vars()
58472
6ffcdafa0118 use assert[Not]IsInstance where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 58457
diff changeset
106 self.assertIsInstance(cvars, dict)
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
107 self.assertTrue(cvars)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
108
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
109 def test_get_platform(self):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
110 # windows XP, 32bits
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
111 os.name = 'nt'
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
112 sys.version = ('2.4.4 (#71, Oct 18 2006, 08:34:43) '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
113 '[MSC v.1310 32 bit (Intel)]')
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
114 sys.platform = 'win32'
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
115 self.assertEqual(get_platform(), 'win32')
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
116
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
117 # windows XP, amd64
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
118 os.name = 'nt'
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
119 sys.version = ('2.4.4 (#71, Oct 18 2006, 08:34:43) '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
120 '[MSC v.1310 32 bit (Amd64)]')
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
121 sys.platform = 'win32'
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
122 self.assertEqual(get_platform(), 'win-amd64')
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
123
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
124 # windows XP, itanium
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
125 os.name = 'nt'
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
126 sys.version = ('2.4.4 (#71, Oct 18 2006, 08:34:43) '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
127 '[MSC v.1310 32 bit (Itanium)]')
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
128 sys.platform = 'win32'
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
129 self.assertEqual(get_platform(), 'win-ia64')
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
130
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
131 # macbook
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
132 os.name = 'posix'
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
133 sys.version = ('2.5 (r25:51918, Sep 19 2006, 08:49:13) '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
134 '\n[GCC 4.0.1 (Apple Computer, Inc. build 5341)]')
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
135 sys.platform = 'darwin'
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
136 self._set_uname(('Darwin', 'macziade', '8.11.1',
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
137 ('Darwin Kernel Version 8.11.1: '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
138 'Wed Oct 10 18:23:28 PDT 2007; '
58457
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
139 'root:xnu-792.25.20~1/RELEASE_I386'), 'PowerPC'))
70143
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
140 get_config_vars()['MACOSX_DEPLOYMENT_TARGET'] = '10.3'
58457
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
141
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
142 get_config_vars()['CFLAGS'] = ('-fno-strict-aliasing -DNDEBUG -g '
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
143 '-fwrapv -O3 -Wall -Wstrict-prototypes')
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
144
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
145 maxint = sys.maxint
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
146 try:
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
147 sys.maxint = 2147483647
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
148 self.assertEqual(get_platform(), 'macosx-10.3-ppc')
58457
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
149 sys.maxint = 9223372036854775807
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
150 self.assertEqual(get_platform(), 'macosx-10.3-ppc64')
58457
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
151 finally:
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
152 sys.maxint = maxint
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
153
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
154
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
155 self._set_uname(('Darwin', 'macziade', '8.11.1',
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
156 ('Darwin Kernel Version 8.11.1: '
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
157 'Wed Oct 10 18:23:28 PDT 2007; '
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
158 'root:xnu-792.25.20~1/RELEASE_I386'), 'i386'))
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
159 get_config_vars()['MACOSX_DEPLOYMENT_TARGET'] = '10.3'
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
160
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
161 get_config_vars()['CFLAGS'] = ('-fno-strict-aliasing -DNDEBUG -g '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
162 '-fwrapv -O3 -Wall -Wstrict-prototypes')
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
163
58457
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
164 maxint = sys.maxint
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
165 try:
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
166 sys.maxint = 2147483647
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
167 self.assertEqual(get_platform(), 'macosx-10.3-i386')
58457
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
168 sys.maxint = 9223372036854775807
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
169 self.assertEqual(get_platform(), 'macosx-10.3-x86_64')
58457
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
170 finally:
bad5e03e2445 fixed the 64bits tests for get_platform() - mac osx
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58450
diff changeset
171 sys.maxint = maxint
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
172
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
173 # macbook with fat binaries (fat, universal or fat64)
70143
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
174 get_config_vars()['MACOSX_DEPLOYMENT_TARGET'] = '10.4'
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
175 get_config_vars()['CFLAGS'] = ('-arch ppc -arch i386 -isysroot '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
176 '/Developer/SDKs/MacOSX10.4u.sdk '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
177 '-fno-strict-aliasing -fno-common '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
178 '-dynamic -DNDEBUG -g -O3')
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
179
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
180 self.assertEqual(get_platform(), 'macosx-10.4-fat')
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
181
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
182 get_config_vars()['CFLAGS'] = ('-arch x86_64 -arch i386 -isysroot '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
183 '/Developer/SDKs/MacOSX10.4u.sdk '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
184 '-fno-strict-aliasing -fno-common '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
185 '-dynamic -DNDEBUG -g -O3')
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
186
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
187 self.assertEqual(get_platform(), 'macosx-10.4-intel')
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
188
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
189 get_config_vars()['CFLAGS'] = ('-arch x86_64 -arch ppc -arch i386 -isysroot '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
190 '/Developer/SDKs/MacOSX10.4u.sdk '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
191 '-fno-strict-aliasing -fno-common '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
192 '-dynamic -DNDEBUG -g -O3')
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
193 self.assertEqual(get_platform(), 'macosx-10.4-fat3')
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
194
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
195 get_config_vars()['CFLAGS'] = ('-arch ppc64 -arch x86_64 -arch ppc -arch i386 -isysroot '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
196 '/Developer/SDKs/MacOSX10.4u.sdk '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
197 '-fno-strict-aliasing -fno-common '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
198 '-dynamic -DNDEBUG -g -O3')
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
199 self.assertEqual(get_platform(), 'macosx-10.4-universal')
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
200
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
201 get_config_vars()['CFLAGS'] = ('-arch x86_64 -arch ppc64 -isysroot '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
202 '/Developer/SDKs/MacOSX10.4u.sdk '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
203 '-fno-strict-aliasing -fno-common '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
204 '-dynamic -DNDEBUG -g -O3')
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
205
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
206 self.assertEqual(get_platform(), 'macosx-10.4-fat64')
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
207
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
208 for arch in ('ppc', 'i386', 'x86_64', 'ppc64'):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
209 get_config_vars()['CFLAGS'] = ('-arch %s -isysroot '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
210 '/Developer/SDKs/MacOSX10.4u.sdk '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
211 '-fno-strict-aliasing -fno-common '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
212 '-dynamic -DNDEBUG -g -O3'%(arch,))
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
213
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
214 self.assertEqual(get_platform(), 'macosx-10.4-%s'%(arch,))
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
215
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
216 # linux debian sarge
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
217 os.name = 'posix'
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
218 sys.version = ('2.3.5 (#1, Jul 4 2007, 17:28:59) '
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
219 '\n[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)]')
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
220 sys.platform = 'linux2'
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
221 self._set_uname(('Linux', 'aglae', '2.6.21.1dedibox-r7',
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
222 '#1 Mon Apr 30 17:25:38 CEST 2007', 'i686'))
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
223
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
224 self.assertEqual(get_platform(), 'linux-i686')
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
225
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
226 # XXX more platforms to tests here
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
227
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
228 def test_get_config_h_filename(self):
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
229 config_h = sysconfig.get_config_h_filename()
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
230 self.assertTrue(os.path.isfile(config_h), config_h)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
231
58648
992cae246a0c sysconfig.get_scheme_names now returns a sorted tuple
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58472
diff changeset
232 def test_get_scheme_names(self):
61421
3293da83df1e add underscore
Benjamin Peterson <benjamin@python.org>
parents: 61420
diff changeset
233 wanted = ('nt', 'nt_user', 'os2', 'os2_home', 'osx_framework_user',
61420
2f7ab922121a r80967 introduced a new scheme
Benjamin Peterson <benjamin@python.org>
parents: 59505
diff changeset
234 'posix_home', 'posix_prefix', 'posix_user')
66348
614c84670c63 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 61764
diff changeset
235 self.assertEqual(get_scheme_names(), wanted)
58648
992cae246a0c sysconfig.get_scheme_names now returns a sorted tuple
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 58472
diff changeset
236
59501
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
237 def test_symlink(self):
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
238 # Issue 7880
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
239 symlink = get_attribute(os, "symlink")
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
240 def get(python):
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
241 cmd = [python, '-c',
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
242 'import sysconfig; print sysconfig.get_platform()']
59505
ad8f63d9dcd8 It is not optimal to test sys.stderr on a debug build.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 59501
diff changeset
243 p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
59501
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
244 return p.communicate()
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
245 real = os.path.realpath(sys.executable)
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
246 link = os.path.abspath(TESTFN)
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
247 symlink(real, link)
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
248 try:
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
249 self.assertEqual(get(real), get(link))
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
250 finally:
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
251 unlink(link)
adbb37d3d0e5 Issue #7880: Fix sysconfig when the python executable is a symbolic link.
Florent Xicluna <florent.xicluna@gmail.com>
parents: 58817
diff changeset
252
61764
021f5ec5d2d4 #8759: Fixed user paths in sysconfig for posix and os2 schemes
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 61421
diff changeset
253 def test_user_similar(self):
72153
4dcbae65df3f Fix test_sysconfig when run from a Python installed under /site (#10086).
Éric Araujo <merwok@netwok.org>
parents: 70143
diff changeset
254 # Issue #8759: make sure the posix scheme for the users
61764
021f5ec5d2d4 #8759: Fixed user paths in sysconfig for posix and os2 schemes
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 61421
diff changeset
255 # is similar to the global posix_prefix one
021f5ec5d2d4 #8759: Fixed user paths in sysconfig for posix and os2 schemes
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 61421
diff changeset
256 base = get_config_var('base')
021f5ec5d2d4 #8759: Fixed user paths in sysconfig for posix and os2 schemes
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 61421
diff changeset
257 user = get_config_var('userbase')
72832
27045f93e4cb Fix test_sysconfig when prefix != exec-prefix (#9100).
Éric Araujo <merwok@netwok.org>
parents: 72153
diff changeset
258 # the global scheme mirrors the distinction between prefix and
27045f93e4cb Fix test_sysconfig when prefix != exec-prefix (#9100).
Éric Araujo <merwok@netwok.org>
parents: 72153
diff changeset
259 # exec-prefix but not the user scheme, so we have to adapt the paths
27045f93e4cb Fix test_sysconfig when prefix != exec-prefix (#9100).
Éric Araujo <merwok@netwok.org>
parents: 72153
diff changeset
260 # before comparing (issue #9100)
27045f93e4cb Fix test_sysconfig when prefix != exec-prefix (#9100).
Éric Araujo <merwok@netwok.org>
parents: 72153
diff changeset
261 adapt = sys.prefix != sys.exec_prefix
61764
021f5ec5d2d4 #8759: Fixed user paths in sysconfig for posix and os2 schemes
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 61421
diff changeset
262 for name in ('stdlib', 'platstdlib', 'purelib', 'platlib'):
021f5ec5d2d4 #8759: Fixed user paths in sysconfig for posix and os2 schemes
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 61421
diff changeset
263 global_path = get_path(name, 'posix_prefix')
72832
27045f93e4cb Fix test_sysconfig when prefix != exec-prefix (#9100).
Éric Araujo <merwok@netwok.org>
parents: 72153
diff changeset
264 if adapt:
27045f93e4cb Fix test_sysconfig when prefix != exec-prefix (#9100).
Éric Araujo <merwok@netwok.org>
parents: 72153
diff changeset
265 global_path = global_path.replace(sys.exec_prefix, sys.prefix)
27045f93e4cb Fix test_sysconfig when prefix != exec-prefix (#9100).
Éric Araujo <merwok@netwok.org>
parents: 72153
diff changeset
266 base = base.replace(sys.exec_prefix, sys.prefix)
61764
021f5ec5d2d4 #8759: Fixed user paths in sysconfig for posix and os2 schemes
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 61421
diff changeset
267 user_path = get_path(name, 'posix_user')
72153
4dcbae65df3f Fix test_sysconfig when run from a Python installed under /site (#10086).
Éric Araujo <merwok@netwok.org>
parents: 70143
diff changeset
268 self.assertEqual(user_path, global_path.replace(base, user, 1))
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
269
70143
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
270 @unittest.skipUnless(sys.platform == "darwin", "test only relevant on MacOSX")
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
271 def test_platform_in_subprocess(self):
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
272 my_platform = sysconfig.get_platform()
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
273
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
274 # Test without MACOSX_DEPLOYMENT_TARGET in the environment
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
275
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
276 env = os.environ.copy()
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
277 if 'MACOSX_DEPLOYMENT_TARGET' in env:
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
278 del env['MACOSX_DEPLOYMENT_TARGET']
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
279
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
280 with open('/dev/null', 'w') as devnull_fp:
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
281 p = subprocess.Popen([
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
282 sys.executable, '-c',
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
283 'import sysconfig; print(sysconfig.get_platform())',
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
284 ],
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
285 stdout=subprocess.PIPE,
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
286 stderr=devnull_fp,
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
287 env=env)
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
288 test_platform = p.communicate()[0].strip()
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
289 test_platform = test_platform.decode('utf-8')
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
290 status = p.wait()
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
291
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
292 self.assertEqual(status, 0)
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
293 self.assertEqual(my_platform, test_platform)
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
294
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
295
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
296 # Test with MACOSX_DEPLOYMENT_TARGET in the environment, and
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
297 # using a value that is unlikely to be the default one.
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
298 env = os.environ.copy()
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
299 env['MACOSX_DEPLOYMENT_TARGET'] = '10.1'
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
300
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
301 p = subprocess.Popen([
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
302 sys.executable, '-c',
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
303 'import sysconfig; print(sysconfig.get_platform())',
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
304 ],
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
305 stdout=subprocess.PIPE,
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
306 stderr=open('/dev/null'),
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
307 env=env)
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
308 test_platform = p.communicate()[0].strip()
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
309 test_platform = test_platform.decode('utf-8')
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
310 status = p.wait()
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
311
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
312 self.assertEqual(status, 0)
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
313 self.assertEqual(my_platform, test_platform)
9874f213edb2 Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 66348
diff changeset
314
58450
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
315 def test_main():
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
316 run_unittest(TestSysConfig)
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
317
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
318 if __name__ == "__main__":
fa69e891edf4 taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
319 test_main()