]> granicus.if.org Git - python/commitdiff
Issue #12141: Install a copy of template C module file so that
authorNed Deily <nad@acm.org>
Tue, 28 Jun 2011 07:42:50 +0000 (00:42 -0700)
committerNed Deily <nad@acm.org>
Tue, 28 Jun 2011 07:42:50 +0000 (00:42 -0700)
test_build_ext of test_distutils is no longer silently skipped when
run outside of a build directory.

Lib/distutils/tests/test_build_ext.py
Makefile.pre.in
Misc/NEWS

index 0aa99babee4c5fb97f07d743360de3b35e0774c3..d924f585ba59c4b330d05dd27eff3ca59bdd8705 100644 (file)
@@ -22,6 +22,11 @@ from test.support import run_unittest
 ALREADY_TESTED = False
 
 def _get_source_filename():
+    # use installed copy if available
+    tests_f = os.path.join(os.path.dirname(__file__), 'xxmodule.c')
+    if os.path.exists(tests_f):
+        return tests_f
+    # otherwise try using copy from build directory
     srcdir = sysconfig.get_config_var('srcdir')
     return os.path.join(srcdir, 'Modules', 'xxmodule.c')
 
@@ -35,7 +40,9 @@ class BuildExtTestCase(TempdirManager,
         self.tmp_dir = self.mkdtemp()
         self.sys_path = sys.path, sys.path[:]
         sys.path.append(self.tmp_dir)
-        shutil.copy(_get_source_filename(), self.tmp_dir)
+        filename = _get_source_filename()
+        if os.path.exists(filename):
+            shutil.copy(filename, self.tmp_dir)
         if sys.version > "2.6":
             import site
             self.old_user_base = site.USER_BASE
@@ -65,6 +72,8 @@ class BuildExtTestCase(TempdirManager,
     def test_build_ext(self):
         global ALREADY_TESTED
         xx_c = os.path.join(self.tmp_dir, 'xxmodule.c')
+        if not os.path.exists(xx_c):
+            return
         xx_ext = Extension('xx', [xx_c])
         dist = Distribution({'name': 'xx', 'ext_modules': [xx_ext]})
         dist.package_dir = self.tmp_dir
index 50ba086e29942190b728f59fb5c607400ae4292f..b93e482b07078dafc389180ea00f42595bee6f2e 100644 (file)
@@ -928,7 +928,7 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
                multiprocessing multiprocessing/dummy \
                unittest unittest/test \
                curses pydoc_data $(MACHDEPS)
-libinstall:    build_all $(srcdir)/Lib/$(PLATDIR)
+libinstall:    build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
        @for i in $(SCRIPTDIR) $(LIBDEST); \
        do \
                if test ! -d $(DESTDIR)$$i; then \
@@ -984,6 +984,10 @@ libinstall:        build_all $(srcdir)/Lib/$(PLATDIR)
                done; \
        done
        $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
+       if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
+               $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
+                       $(DESTDIR)$(LIBDEST)/distutils/tests ; \
+       fi
        -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
                ./$(BUILDPYTHON) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
                -d $(LIBDEST) -f \
index 1a7fcb11eccb9b8e8f1e85db56394f7ce1786759..a8c607936cbd781ed6a0da1a4fe97acd3e0da75c 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -111,6 +111,10 @@ Build
 Tests
 -----
 
+- Issue #12141: Install a copy of template C module file so that
+  test_build_ext of test_distutils is no longer silently skipped when
+  run outside of a build directory.
+
 - Issue #8746: Add additional tests for os.chflags() and os.lchflags().
   Patch by Garrett Cooper.