[Python-checkins] r55747 - in python/branches/release25-maint: Lib/distutils/command/build_py.py Lib/distutils/tests/test_build_py.py Misc/ACKS Misc/NEWS

neal.norwitz python-checkins at python.org
Sat Jun 2 20:53:09 CEST 2007


Author: neal.norwitz
Date: Sat Jun 2 20:53:07 2007
New Revision: 55747
Modified:
 python/branches/release25-maint/Lib/distutils/command/build_py.py
 python/branches/release25-maint/Lib/distutils/tests/test_build_py.py
 python/branches/release25-maint/Misc/ACKS
 python/branches/release25-maint/Misc/NEWS
Log:
Backport 55731:
SF 1668596/1720897: distutils now copies data files
even if package_dir is empty.
Modified: python/branches/release25-maint/Lib/distutils/command/build_py.py
==============================================================================
--- python/branches/release25-maint/Lib/distutils/command/build_py.py	(original)
+++ python/branches/release25-maint/Lib/distutils/command/build_py.py	Sat Jun 2 20:53:07 2007
@@ -114,7 +114,9 @@
 build_dir = os.path.join(*([self.build_lib] + package.split('.')))
 
 # Length of path to strip from found files
- plen = len(src_dir)+1
+ plen = 0
+ if src_dir:
+ plen = len(src_dir)+1
 
 # Strip directory from globbed filenames
 filenames = [
Modified: python/branches/release25-maint/Lib/distutils/tests/test_build_py.py
==============================================================================
--- python/branches/release25-maint/Lib/distutils/tests/test_build_py.py	(original)
+++ python/branches/release25-maint/Lib/distutils/tests/test_build_py.py	Sat Jun 2 20:53:07 2007
@@ -1,10 +1,13 @@
 """Tests for distutils.command.build_py."""
 
 import os
+import sys
+import StringIO
 import unittest
 
 from distutils.command.build_py import build_py
 from distutils.core import Distribution
+from distutils.errors import DistutilsFileError
 
 from distutils.tests import support
 
@@ -53,6 +56,38 @@
 self.assert_("__init__.pyc" in files)
 self.assert_("README.txt" in files)
 
+ def test_empty_package_dir (self):
+ # See SF 1668596/1720897.
+ cwd = os.getcwd()
+
+ # create the distribution files.
+ sources = self.mkdtemp()
+ open(os.path.join(sources, "__init__.py"), "w").close()
+
+ testdir = os.path.join(sources, "doc")
+ os.mkdir(testdir)
+ open(os.path.join(testdir, "testfile"), "w").close()
+
+ os.chdir(sources)
+ sys.stdout = StringIO.StringIO()
+
+ try:
+ dist = Distribution({"packages": ["pkg"],
+ "package_dir": {"pkg": ""},
+ "package_data": {"pkg": ["doc/*"]}})
+ # script_name need not exist, it just need to be initialized
+ dist.script_name = os.path.join(sources, "setup.py")
+ dist.script_args = ["build"]
+ dist.parse_command_line()
+
+ try:
+ dist.run_commands()
+ except DistutilsFileError:
+ self.fail("failed package_data test when package_dir is ''")
+ finally:
+ # Restore state.
+ os.chdir(cwd)
+ sys.stdout = sys.__stdout__
 
 def test_suite():
 return unittest.makeSuite(BuildPyTestCase)
Modified: python/branches/release25-maint/Misc/ACKS
==============================================================================
--- python/branches/release25-maint/Misc/ACKS	(original)
+++ python/branches/release25-maint/Misc/ACKS	Sat Jun 2 20:53:07 2007
@@ -155,6 +155,7 @@
 John DeGood
 Vincent Delft
 Roger Dev
+Raghuram Devarakonda
 Toby Dickenson
 Yves Dionne
 Daniel Dittmar
Modified: python/branches/release25-maint/Misc/NEWS
==============================================================================
--- python/branches/release25-maint/Misc/NEWS	(original)
+++ python/branches/release25-maint/Misc/NEWS	Sat Jun 2 20:53:07 2007
@@ -12,6 +12,9 @@
 Library
 -------
 
+- SF 1668596/1720897: distutils now copies data files
+ even if package_dir is empty.
+
 - Fix bug in marshal where bad data would cause a segfault due to
 lack of an infinite recursion check.
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /