diff options
author | Éric Araujo <merwok@netwok.org> | 2011-08-20 05:08:51 (GMT) |
---|---|---|
committer | Éric Araujo <merwok@netwok.org> | 2011-08-20 05:08:51 (GMT) |
commit | 6b32ecff20b75ff63396daf6a0cda25d8462fc87 (patch) | |
tree | 2b5c0f13e0018505c4152e282903dc725d966884 /Lib | |
parent | 3c2ec8e52b1ddcd4c31eca2d17912aad078a61a6 (diff) | |
download | cpython-6b32ecff20b75ff63396daf6a0cda25d8462fc87.zip cpython-6b32ecff20b75ff63396daf6a0cda25d8462fc87.tar.gz cpython-6b32ecff20b75ff63396daf6a0cda25d8462fc87.tar.bz2 |
Add a test for extension modules in the distutils record file.
I made a note a month ago that install --record wrote incorrect entries
for extension modules (I think the problem was that the first character
of the file was stripped), so I’m now adding a test to try to reproduce
that in the current versions.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/distutils/tests/test_install.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Lib/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py index 3e47d81..2133fa7 100644 --- a/Lib/distutils/tests/test_install.py +++ b/Lib/distutils/tests/test_install.py @@ -7,11 +7,14 @@ import site from test.support import captured_stdout, run_unittest +from distutils import sysconfig from distutils.command.install import install from distutils.command import install as install_module +from distutils.command.build_ext import build_ext from distutils.command.install import INSTALL_SCHEMES from distutils.core import Distribution from distutils.errors import DistutilsOptionError +from distutils.extension import Extension from distutils.tests import support @@ -190,6 +193,36 @@ class InstallTestCase(support.TempdirManager, 'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]] self.assertEqual(found, expected) + def test_record_extensions(self): + install_dir = self.mkdtemp() + project_dir, dist = self.create_dist(ext_modules=[ + Extension('xx', ['xxmodule.c'])]) + self.addCleanup(os.chdir, os.getcwd()) + os.chdir(project_dir) + support.copy_xxmodule_c(project_dir) + + buildcmd = build_ext(dist) + buildcmd.ensure_finalized() + buildcmd.run() + + cmd = install(dist) + dist.command_obj['install'] = cmd + cmd.root = install_dir + cmd.record = os.path.join(project_dir, 'RECORD') + cmd.ensure_finalized() + cmd.run() + + f = open(cmd.record) + try: + content = f.read() + finally: + f.close() + + found = [os.path.basename(line) for line in content.splitlines()] + expected = ['xx%s' % sysconfig.get_config_var('SO'), + 'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]] + self.assertEqual(found, expected) + def test_debug_mode(self): # this covers the code called when DEBUG is set old_logs_len = len(self.logs) |