mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	SF 1668596/1720897: distutils now copies data files
even if package_dir is empty. This needs to be backported. I'm too tired tonight. It would be great if someone backports this if the buildbots are ok with it. Otherwise, I will try to get to it tomorrow.
This commit is contained in:
		
							parent
							
								
									19a7daa507
								
							
						
					
					
						commit
						4a700bb469
					
				
					 4 changed files with 42 additions and 1 deletions
				
			
		|  | @ -114,7 +114,9 @@ def get_data_files (self): | ||||||
|             build_dir = os.path.join(*([self.build_lib] + package.split('.'))) |             build_dir = os.path.join(*([self.build_lib] + package.split('.'))) | ||||||
| 
 | 
 | ||||||
|             # Length of path to strip from found files |             # 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 |             # Strip directory from globbed filenames | ||||||
|             filenames = [ |             filenames = [ | ||||||
|  |  | ||||||
|  | @ -1,10 +1,13 @@ | ||||||
| """Tests for distutils.command.build_py.""" | """Tests for distutils.command.build_py.""" | ||||||
| 
 | 
 | ||||||
| import os | import os | ||||||
|  | import sys | ||||||
|  | import StringIO | ||||||
| import unittest | import unittest | ||||||
| 
 | 
 | ||||||
| from distutils.command.build_py import build_py | from distutils.command.build_py import build_py | ||||||
| from distutils.core import Distribution | from distutils.core import Distribution | ||||||
|  | from distutils.errors import DistutilsFileError | ||||||
| 
 | 
 | ||||||
| from distutils.tests import support | from distutils.tests import support | ||||||
| 
 | 
 | ||||||
|  | @ -53,6 +56,38 @@ def test_package_data(self): | ||||||
|         self.assert_("__init__.pyc" in files) |         self.assert_("__init__.pyc" in files) | ||||||
|         self.assert_("README.txt" 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(): | def test_suite(): | ||||||
|     return unittest.makeSuite(BuildPyTestCase) |     return unittest.makeSuite(BuildPyTestCase) | ||||||
|  |  | ||||||
|  | @ -159,6 +159,7 @@ John DeGood | ||||||
| Vincent Delft | Vincent Delft | ||||||
| Erik Demaine | Erik Demaine | ||||||
| Roger Dev | Roger Dev | ||||||
|  | Raghuram Devarakonda | ||||||
| Toby Dickenson | Toby Dickenson | ||||||
| Mark Dickinson | Mark Dickinson | ||||||
| Yves Dionne | Yves Dionne | ||||||
|  |  | ||||||
|  | @ -220,6 +220,9 @@ Core and builtins | ||||||
| Library | Library | ||||||
| ------- | ------- | ||||||
| 
 | 
 | ||||||
|  | - SF 1668596/1720897: distutils now copies data files | ||||||
|  |   even if package_dir is empty. | ||||||
|  | 
 | ||||||
| - sha now raises a DeprecationWarning upon import. | - sha now raises a DeprecationWarning upon import. | ||||||
| 
 | 
 | ||||||
| - md5 now raises a DeprecationWarning upon import. | - md5 now raises a DeprecationWarning upon import. | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Neal Norwitz
						Neal Norwitz