mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Merged revisions 77704,77752 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r77704 | tarek.ziade | 2010-01-23 10:23:15 +0100 (Sat, 23 Jan 2010) | 1 line taking sysconfig out of distutils ........ r77752 | tarek.ziade | 2010-01-26 00:19:56 +0100 (Tue, 26 Jan 2010) | 1 line switched the call order so this call works without suffering from issue #7774 ........
This commit is contained in:
parent
82b8398583
commit
edacea30e4
35 changed files with 1193 additions and 926 deletions
|
@ -3,11 +3,19 @@ import os
|
|||
import shutil
|
||||
import tempfile
|
||||
from copy import deepcopy
|
||||
import warnings
|
||||
|
||||
from distutils import log
|
||||
from distutils.log import DEBUG, INFO, WARN, ERROR, FATAL
|
||||
from distutils.core import Distribution
|
||||
|
||||
def capture_warnings(func):
|
||||
def _capture_warnings(*args, **kw):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore")
|
||||
return func(*args, **kw)
|
||||
return _capture_warnings
|
||||
|
||||
class LoggingSilencer(object):
|
||||
|
||||
def setUp(self):
|
||||
|
|
|
@ -5,7 +5,7 @@ import sys
|
|||
|
||||
from distutils.command.build import build
|
||||
from distutils.tests import support
|
||||
from distutils.util import get_platform
|
||||
from sysconfig import get_platform
|
||||
|
||||
class BuildTestCase(support.TempdirManager,
|
||||
support.LoggingSilencer,
|
||||
|
|
|
@ -120,8 +120,7 @@ class BuildCLibTestCase(support.TempdirManager,
|
|||
# before we run the command, we want to make sure
|
||||
# all commands are present on the system
|
||||
# by creating a compiler and checking its executables
|
||||
from distutils.ccompiler import new_compiler
|
||||
from distutils.sysconfig import customize_compiler
|
||||
from distutils.ccompiler import new_compiler, customize_compiler
|
||||
|
||||
compiler = new_compiler()
|
||||
customize_compiler(compiler)
|
||||
|
|
|
@ -9,7 +9,7 @@ from test.support import captured_stdout
|
|||
|
||||
from distutils.core import Extension, Distribution
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils import sysconfig
|
||||
import sysconfig
|
||||
from distutils.tests.support import TempdirManager
|
||||
from distutils.tests.support import LoggingSilencer
|
||||
from distutils.extension import Extension
|
||||
|
@ -105,17 +105,17 @@ class BuildExtTestCase(TempdirManager,
|
|||
old = sys.platform
|
||||
|
||||
sys.platform = 'sunos' # fooling finalize_options
|
||||
from distutils.sysconfig import _config_vars
|
||||
old_var = _config_vars.get('Py_ENABLE_SHARED')
|
||||
_config_vars['Py_ENABLE_SHARED'] = 1
|
||||
from sysconfig import _CONFIG_VARS
|
||||
old_var = _CONFIG_VARS.get('Py_ENABLE_SHARED')
|
||||
_CONFIG_VARS['Py_ENABLE_SHARED'] = 1
|
||||
try:
|
||||
cmd.ensure_finalized()
|
||||
finally:
|
||||
sys.platform = old
|
||||
if old_var is None:
|
||||
del _config_vars['Py_ENABLE_SHARED']
|
||||
del _CONFIG_VARS['Py_ENABLE_SHARED']
|
||||
else:
|
||||
_config_vars['Py_ENABLE_SHARED'] = old_var
|
||||
_CONFIG_VARS['Py_ENABLE_SHARED'] = old_var
|
||||
|
||||
# make sure we get some library dirs under solaris
|
||||
self.assertTrue(len(cmd.library_dirs) > 0)
|
||||
|
@ -177,11 +177,10 @@ class BuildExtTestCase(TempdirManager,
|
|||
cmd = build_ext(dist)
|
||||
cmd.finalize_options()
|
||||
|
||||
from distutils import sysconfig
|
||||
py_include = sysconfig.get_python_inc()
|
||||
py_include = sysconfig.get_path('include')
|
||||
self.assertTrue(py_include in cmd.include_dirs)
|
||||
|
||||
plat_py_include = sysconfig.get_python_inc(plat_specific=1)
|
||||
plat_py_include = sysconfig.get_path('platinclude')
|
||||
self.assertTrue(plat_py_include in cmd.include_dirs)
|
||||
|
||||
# make sure cmd.libraries is turned into a list
|
||||
|
|
|
@ -5,7 +5,7 @@ import unittest
|
|||
|
||||
from distutils.command.build_scripts import build_scripts
|
||||
from distutils.core import Distribution
|
||||
from distutils import sysconfig
|
||||
import sysconfig
|
||||
|
||||
from distutils.tests import support
|
||||
|
||||
|
@ -91,12 +91,12 @@ class BuildScriptsTestCase(support.TempdirManager,
|
|||
# --with-suffix=3`, python is compiled okay but the build scripts
|
||||
# failed when writing the name of the executable
|
||||
old = sysconfig.get_config_vars().get('VERSION')
|
||||
sysconfig._config_vars['VERSION'] = 4
|
||||
sysconfig._CONFIG_VARS['VERSION'] = 4
|
||||
try:
|
||||
cmd.run()
|
||||
finally:
|
||||
if old is not None:
|
||||
sysconfig._config_vars['VERSION'] = old
|
||||
sysconfig._CONFIG_VARS['VERSION'] = old
|
||||
|
||||
built = os.listdir(target)
|
||||
for name in expected:
|
||||
|
|
|
@ -3,8 +3,10 @@ import os
|
|||
import unittest
|
||||
from test.support import captured_stdout
|
||||
|
||||
from distutils.ccompiler import gen_lib_options, CCompiler
|
||||
from distutils.ccompiler import (gen_lib_options, CCompiler,
|
||||
get_default_compiler, customize_compiler)
|
||||
from distutils import debug
|
||||
from distutils.tests import support
|
||||
|
||||
class FakeCompiler(object):
|
||||
def library_dir_option(self, dir):
|
||||
|
@ -19,7 +21,7 @@ class FakeCompiler(object):
|
|||
def library_option(self, lib):
|
||||
return "-l" + lib
|
||||
|
||||
class CCompilerTestCase(unittest.TestCase):
|
||||
class CCompilerTestCase(support.EnvironGuard, unittest.TestCase):
|
||||
|
||||
def test_gen_lib_options(self):
|
||||
compiler = FakeCompiler()
|
||||
|
@ -52,6 +54,26 @@ class CCompilerTestCase(unittest.TestCase):
|
|||
finally:
|
||||
debug.DEBUG = False
|
||||
|
||||
def test_customize_compiler(self):
|
||||
|
||||
# not testing if default compiler is not unix
|
||||
if get_default_compiler() != 'unix':
|
||||
return
|
||||
|
||||
os.environ['AR'] = 'my_ar'
|
||||
os.environ['ARFLAGS'] = '-arflags'
|
||||
|
||||
# make sure AR gets caught
|
||||
class compiler:
|
||||
compiler_type = 'unix'
|
||||
|
||||
def set_executables(self, **kw):
|
||||
self.exes = kw
|
||||
|
||||
comp = compiler()
|
||||
customize_compiler(comp)
|
||||
self.assertEquals(comp.exes['archiver'], 'my_ar -arflags')
|
||||
|
||||
def test_suite():
|
||||
return unittest.makeSuite(CCompilerTestCase)
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import sys
|
|||
import os
|
||||
import subprocess
|
||||
import warnings
|
||||
import sysconfig
|
||||
|
||||
from test.support import check_warnings
|
||||
from test.support import captured_stdout
|
||||
|
@ -23,13 +24,11 @@ class CygwinCCompilerTestCase(support.TempdirManager,
|
|||
super(CygwinCCompilerTestCase, self).setUp()
|
||||
self.version = sys.version
|
||||
self.python_h = os.path.join(self.mkdtemp(), 'python.h')
|
||||
from distutils import sysconfig
|
||||
self.old_get_config_h_filename = sysconfig.get_config_h_filename
|
||||
sysconfig.get_config_h_filename = self._get_config_h_filename
|
||||
|
||||
def tearDown(self):
|
||||
sys.version = self.version
|
||||
from distutils import sysconfig
|
||||
sysconfig.get_config_h_filename = self.old_get_config_h_filename
|
||||
super(CygwinCCompilerTestCase, self).tearDown()
|
||||
|
||||
|
|
|
@ -5,9 +5,11 @@ import warnings
|
|||
|
||||
from test.support import check_warnings
|
||||
from distutils.extension import read_setup_file, Extension
|
||||
from distutils.tests.support import capture_warnings
|
||||
|
||||
class ExtensionTestCase(unittest.TestCase):
|
||||
|
||||
@capture_warnings
|
||||
def test_read_setup_file(self):
|
||||
# trying to read a Setup file
|
||||
# (sample extracted from the PyGame project)
|
||||
|
|
|
@ -5,12 +5,14 @@ import os.path
|
|||
import sys
|
||||
import unittest
|
||||
import site
|
||||
import sysconfig
|
||||
from sysconfig import (get_scheme_names, _CONFIG_VARS, _INSTALL_SCHEMES,
|
||||
get_config_var, get_path)
|
||||
|
||||
from test.support import captured_stdout
|
||||
|
||||
from distutils.command.install import install
|
||||
from distutils.command import install as install_module
|
||||
from distutils.command.install import INSTALL_SCHEMES
|
||||
from distutils.core import Distribution
|
||||
from distutils.errors import DistutilsOptionError
|
||||
|
||||
|
@ -36,9 +38,23 @@ class InstallTestCase(support.TempdirManager,
|
|||
build_lib=os.path.join(builddir, "lib"),
|
||||
)
|
||||
|
||||
cmd = install(dist)
|
||||
cmd.home = destination
|
||||
cmd.ensure_finalized()
|
||||
|
||||
|
||||
posix_prefix = _INSTALL_SCHEMES['posix_prefix']
|
||||
old_posix_prefix = posix_prefix['platinclude']
|
||||
posix_prefix['platinclude'] = \
|
||||
'{platbase}/include/python{py_version_short}'
|
||||
|
||||
posix_home = _INSTALL_SCHEMES['posix_home']
|
||||
old_posix_home = posix_home['platinclude']
|
||||
posix_home['platinclude'] = '{base}/include/python'
|
||||
try:
|
||||
cmd = install(dist)
|
||||
cmd.home = destination
|
||||
cmd.ensure_finalized()
|
||||
finally:
|
||||
posix_home['platinclude'] = old_posix_home
|
||||
posix_prefix['platinclude'] = old_posix_prefix
|
||||
|
||||
self.assertEqual(cmd.install_base, destination)
|
||||
self.assertEqual(cmd.install_platbase, destination)
|
||||
|
@ -63,18 +79,19 @@ class InstallTestCase(support.TempdirManager,
|
|||
return
|
||||
|
||||
# preparing the environement for the test
|
||||
self.old_user_base = site.USER_BASE
|
||||
self.old_user_site = site.USER_SITE
|
||||
self.old_user_base = get_config_var('userbase')
|
||||
self.old_user_site = get_path('purelib', '%s_user' % os.name)
|
||||
self.tmpdir = self.mkdtemp()
|
||||
self.user_base = os.path.join(self.tmpdir, 'B')
|
||||
self.user_site = os.path.join(self.tmpdir, 'S')
|
||||
site.USER_BASE = self.user_base
|
||||
site.USER_SITE = self.user_site
|
||||
install_module.USER_BASE = self.user_base
|
||||
install_module.USER_SITE = self.user_site
|
||||
_CONFIG_VARS['userbase'] = self.user_base
|
||||
scheme = _INSTALL_SCHEMES['%s_user' % os.name]
|
||||
scheme['purelib'] = self.user_site
|
||||
|
||||
def _expanduser(path):
|
||||
return self.tmpdir
|
||||
if path[0] == '~':
|
||||
path = os.path.normpath(self.tmpdir) + path[1:]
|
||||
return path
|
||||
self.old_expand = os.path.expanduser
|
||||
os.path.expanduser = _expanduser
|
||||
|
||||
|
@ -82,19 +99,17 @@ class InstallTestCase(support.TempdirManager,
|
|||
# this is the actual test
|
||||
self._test_user_site()
|
||||
finally:
|
||||
site.USER_BASE = self.old_user_base
|
||||
site.USER_SITE = self.old_user_site
|
||||
install_module.USER_BASE = self.old_user_base
|
||||
install_module.USER_SITE = self.old_user_site
|
||||
_CONFIG_VARS['userbase'] = self.old_user_base
|
||||
scheme['purelib'] = self.old_user_site
|
||||
os.path.expanduser = self.old_expand
|
||||
|
||||
def _test_user_site(self):
|
||||
for key in ('nt_user', 'unix_user', 'os2_home'):
|
||||
self.assertTrue(key in INSTALL_SCHEMES)
|
||||
schemes = get_scheme_names()
|
||||
for key in ('nt_user', 'posix_user', 'os2_home'):
|
||||
self.assertTrue(key in schemes)
|
||||
|
||||
dist = Distribution({'name': 'xx'})
|
||||
cmd = install(dist)
|
||||
|
||||
# making sure the user option is there
|
||||
options = [name for name, short, lable in
|
||||
cmd.user_options]
|
||||
|
@ -185,7 +200,7 @@ class InstallTestCase(support.TempdirManager,
|
|||
with open(cmd.record) as f:
|
||||
self.assertEquals(len(f.readlines()), 1)
|
||||
|
||||
def test_debug_mode(self):
|
||||
def _test_debug_mode(self):
|
||||
# this covers the code called when DEBUG is set
|
||||
old_logs_len = len(self.logs)
|
||||
install_module.DEBUG = True
|
||||
|
|
|
@ -4,7 +4,6 @@ import test
|
|||
import unittest
|
||||
|
||||
from distutils import sysconfig
|
||||
from distutils.ccompiler import get_default_compiler
|
||||
from distutils.tests import support
|
||||
from test.support import TESTFN, run_unittest
|
||||
|
||||
|
@ -26,10 +25,7 @@ class SysconfigTestCase(support.EnvironGuard,
|
|||
elif os.path.isdir(TESTFN):
|
||||
shutil.rmtree(TESTFN)
|
||||
|
||||
def test_get_config_h_filename(self):
|
||||
config_h = sysconfig.get_config_h_filename()
|
||||
self.assertTrue(os.path.isfile(config_h), config_h)
|
||||
|
||||
@support.capture_warnings
|
||||
def test_get_python_lib(self):
|
||||
lib_dir = sysconfig.get_python_lib()
|
||||
# XXX doesn't work on Linux when Python was never installed before
|
||||
|
@ -37,7 +33,11 @@ class SysconfigTestCase(support.EnvironGuard,
|
|||
# test for pythonxx.lib?
|
||||
self.assertNotEqual(sysconfig.get_python_lib(),
|
||||
sysconfig.get_python_lib(prefix=TESTFN))
|
||||
_sysconfig = __import__('sysconfig')
|
||||
res = sysconfig.get_python_lib(True, True)
|
||||
self.assertEquals(_sysconfig.get_path('platstdlib'), res)
|
||||
|
||||
@support.capture_warnings
|
||||
def test_get_python_inc(self):
|
||||
inc_dir = sysconfig.get_python_inc()
|
||||
# This is not much of a test. We make sure Python.h exists
|
||||
|
@ -47,31 +47,7 @@ class SysconfigTestCase(support.EnvironGuard,
|
|||
python_h = os.path.join(inc_dir, "Python.h")
|
||||
self.assertTrue(os.path.isfile(python_h), python_h)
|
||||
|
||||
def test_get_config_vars(self):
|
||||
cvars = sysconfig.get_config_vars()
|
||||
self.assertTrue(isinstance(cvars, dict))
|
||||
self.assertTrue(cvars)
|
||||
|
||||
def test_customize_compiler(self):
|
||||
|
||||
# not testing if default compiler is not unix
|
||||
if get_default_compiler() != 'unix':
|
||||
return
|
||||
|
||||
os.environ['AR'] = 'my_ar'
|
||||
os.environ['ARFLAGS'] = '-arflags'
|
||||
|
||||
# make sure AR gets caught
|
||||
class compiler:
|
||||
compiler_type = 'unix'
|
||||
|
||||
def set_executables(self, **kw):
|
||||
self.exes = kw
|
||||
|
||||
comp = compiler()
|
||||
sysconfig.customize_compiler(comp)
|
||||
self.assertEquals(comp.exes['archiver'], 'my_ar -arflags')
|
||||
|
||||
@support.capture_warnings
|
||||
def test_parse_makefile_base(self):
|
||||
self.makefile = TESTFN
|
||||
fd = open(self.makefile, 'w')
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
"""Tests for distutils.unixccompiler."""
|
||||
import sys
|
||||
import unittest
|
||||
import sysconfig
|
||||
|
||||
from distutils import sysconfig
|
||||
from distutils.unixccompiler import UnixCCompiler
|
||||
|
||||
class UnixCCompilerTestCase(unittest.TestCase):
|
||||
|
|
|
@ -6,15 +6,14 @@ from copy import copy
|
|||
from io import BytesIO
|
||||
import subprocess
|
||||
|
||||
from sysconfig import get_config_vars, get_platform
|
||||
from distutils.errors import DistutilsPlatformError, DistutilsByteCompileError
|
||||
from distutils.util import (get_platform, convert_path, change_root,
|
||||
from distutils.util import (convert_path, change_root,
|
||||
check_environ, split_quoted, strtobool,
|
||||
rfc822_escape, get_compiler_versions,
|
||||
_find_exe_version, _MAC_OS_X_LD_VERSION,
|
||||
byte_compile)
|
||||
from distutils import util
|
||||
from distutils.sysconfig import get_config_vars
|
||||
from distutils import sysconfig
|
||||
from distutils.tests import support
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
|
@ -44,7 +43,7 @@ class UtilTestCase(support.EnvironGuard, unittest.TestCase):
|
|||
self.join = os.path.join
|
||||
self.isabs = os.path.isabs
|
||||
self.splitdrive = os.path.splitdrive
|
||||
self._config_vars = copy(sysconfig._config_vars)
|
||||
#self._config_vars = copy(sysconfig._config_vars)
|
||||
|
||||
# patching os.uname
|
||||
if hasattr(os, 'uname'):
|
||||
|
@ -78,7 +77,7 @@ class UtilTestCase(support.EnvironGuard, unittest.TestCase):
|
|||
os.uname = self.uname
|
||||
else:
|
||||
del os.uname
|
||||
sysconfig._config_vars = copy(self._config_vars)
|
||||
#sysconfig._config_vars = copy(self._config_vars)
|
||||
util.find_executable = self.old_find_executable
|
||||
subprocess.Popen = self.old_popen
|
||||
sys.old_stdout = self.old_stdout
|
||||
|
@ -91,7 +90,7 @@ class UtilTestCase(support.EnvironGuard, unittest.TestCase):
|
|||
def _get_uname(self):
|
||||
return self._uname
|
||||
|
||||
def test_get_platform(self):
|
||||
def _test_get_platform(self):
|
||||
|
||||
# windows XP, 32bits
|
||||
os.name = 'nt'
|
||||
|
@ -119,7 +118,6 @@ class UtilTestCase(support.EnvironGuard, unittest.TestCase):
|
|||
sys.version = ('2.5 (r25:51918, Sep 19 2006, 08:49:13) '
|
||||
'\n[GCC 4.0.1 (Apple Computer, Inc. build 5341)]')
|
||||
sys.platform = 'darwin'
|
||||
|
||||
self._set_uname(('Darwin', 'macziade', '8.11.1',
|
||||
('Darwin Kernel Version 8.11.1: '
|
||||
'Wed Oct 10 18:23:28 PDT 2007; '
|
||||
|
@ -157,7 +155,6 @@ class UtilTestCase(support.EnvironGuard, unittest.TestCase):
|
|||
finally:
|
||||
sys.maxsize = maxsize
|
||||
|
||||
|
||||
# macbook with fat binaries (fat, universal or fat64)
|
||||
os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.4'
|
||||
get_config_vars()['CFLAGS'] = ('-arch ppc -arch i386 -isysroot '
|
||||
|
@ -201,7 +198,6 @@ class UtilTestCase(support.EnvironGuard, unittest.TestCase):
|
|||
|
||||
self.assertEquals(get_platform(), 'macosx-10.4-%s'%(arch,))
|
||||
|
||||
|
||||
# linux debian sarge
|
||||
os.name = 'posix'
|
||||
sys.version = ('2.3.5 (#1, Jul 4 2007, 17:28:59) '
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue