[Python-checkins] cpython (3.2): Issue #12141: Install a copy of template C module file so that

ned.deily python-checkins at python.org
Tue Jun 28 09:55:00 CEST 2011


http://hg.python.org/cpython/rev/de226a510b52
changeset:   71034:de226a510b52
branch:      3.2
parent:      71031:529e26aa4fa3
user:        Ned Deily <nad at acm.org>
date:        Tue Jun 28 00:42:50 2011 -0700
summary:
  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.

files:
  Lib/distutils/tests/test_build_ext.py |  11 ++++++++++-
  Makefile.pre.in                       |   6 +++++-
  Misc/NEWS                             |   4 ++++
  3 files changed, 19 insertions(+), 2 deletions(-)


diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py
--- a/Lib/distutils/tests/test_build_ext.py
+++ b/Lib/distutils/tests/test_build_ext.py
@@ -22,6 +22,11 @@
 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 @@
         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 @@
     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
diff --git a/Makefile.pre.in b/Makefile.pre.in
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -928,7 +928,7 @@
 		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 @@
 		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 \
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -111,6 +111,10 @@
 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.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list