diff options
author | Éric Araujo <merwok@netwok.org> | 2012-02-09 20:30:25 (GMT) |
---|---|---|
committer | Éric Araujo <merwok@netwok.org> | 2012-02-09 20:30:25 (GMT) |
commit | 1a765f5d9d3603b9d2d1415fcc8433c5f5e9e6e1 (patch) | |
tree | 3c2d3ee27750f423edc2b8cc4bc8ed328a364fa9 /Lib/packaging | |
parent | 6e1f564efae560a82c3da5acab805c2857f9788c (diff) | |
download | cpython-1a765f5d9d3603b9d2d1415fcc8433c5f5e9e6e1.zip cpython-1a765f5d9d3603b9d2d1415fcc8433c5f5e9e6e1.tar.gz cpython-1a765f5d9d3603b9d2d1415fcc8433c5f5e9e6e1.tar.bz2 |
Synchronize packaging.tests.support with distutils2
Diffstat (limited to 'Lib/packaging')
-rw-r--r-- | Lib/packaging/tests/support.py | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/Lib/packaging/tests/support.py b/Lib/packaging/tests/support.py index 4848bcc..06f06c9 100644 --- a/Lib/packaging/tests/support.py +++ b/Lib/packaging/tests/support.py @@ -56,8 +56,9 @@ __all__ = [ # misc. functions and decorators 'fake_dec', 'create_distribution', 'use_command', 'copy_xxmodule_c', 'fixup_build_ext', + 'skip_2to3_optimize', # imported from this module for backport purposes - 'unittest', 'requires_zlib', 'skip_2to3_optimize', 'skip_unless_symlink', + 'unittest', 'requires_zlib', 'skip_unless_symlink', ] @@ -332,22 +333,18 @@ def copy_xxmodule_c(directory): """ filename = _get_xxmodule_path() if filename is None: - raise unittest.SkipTest('cannot find xxmodule.c (test must run in ' - 'the python build dir)') + raise unittest.SkipTest('cannot find xxmodule.c') shutil.copy(filename, directory) def _get_xxmodule_path(): - srcdir = sysconfig.get_config_var('srcdir') - candidates = [ - # use installed copy if available - os.path.join(os.path.dirname(__file__), 'xxmodule.c'), - # otherwise try using copy from build directory - os.path.join(srcdir, 'Modules', 'xxmodule.c'), - ] - for path in candidates: - if os.path.exists(path): - return path + if sysconfig.is_python_build(): + srcdir = sysconfig.get_config_var('projectbase') + path = os.path.join(os.getcwd(), srcdir, 'Modules', 'xxmodule.c') + else: + os.path.join(os.path.dirname(__file__), 'xxmodule.c') + if os.path.exists(path): + return path def fixup_build_ext(cmd): @@ -355,20 +352,21 @@ def fixup_build_ext(cmd): When Python was built with --enable-shared on Unix, -L. is not enough to find libpython<blah>.so, because regrtest runs in a tempdir, not in the - source directory where the .so lives. + source directory where the .so lives. (Mac OS X embeds absolute paths + to shared libraries into executables, so the fixup is a no-op on that + platform.) When Python was built with in debug mode on Windows, build_ext commands need their debug attribute set, and it is not done automatically for some reason. - This function handles both of these things. Example use: + This function handles both of these things, and also fixes + cmd.distribution.include_dirs if the running Python is an uninstalled + build. Example use: cmd = build_ext(dist) support.fixup_build_ext(cmd) cmd.ensure_finalized() - - Unlike most other Unix platforms, Mac OS X embeds absolute paths - to shared libraries into executables, so the fixup is not needed there. """ if os.name == 'nt': cmd.debug = sys.executable.endswith('_d.exe') @@ -386,12 +384,17 @@ def fixup_build_ext(cmd): name, equals, value = runshared.partition('=') cmd.library_dirs = value.split(os.pathsep) + # Allow tests to run with an uninstalled Python + if sysconfig.is_python_build(): + pysrcdir = sysconfig.get_config_var('projectbase') + cmd.distribution.include_dirs.append(os.path.join(pysrcdir, 'Include')) + + try: from test.support import skip_unless_symlink except ImportError: skip_unless_symlink = unittest.skip( 'requires test.support.skip_unless_symlink') - skip_2to3_optimize = unittest.skipIf(sys.flags.optimize, "2to3 doesn't work under -O") |