mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	fix bug: list of data files was initialized too soon in build_py
This commit is contained in:
		
							parent
							
								
									b8ab8b6da8
								
							
						
					
					
						commit
						b849eddde6
					
				
					 2 changed files with 51 additions and 1 deletions
				
			
		|  | @ -53,11 +53,11 @@ def finalize_options (self): | |||
|         self.packages = self.distribution.packages | ||||
|         self.py_modules = self.distribution.py_modules | ||||
|         self.package_data = self.distribution.package_data | ||||
|         self.data_files = self.get_data_files() | ||||
|         self.package_dir = {} | ||||
|         if self.distribution.package_dir: | ||||
|             for name, path in self.distribution.package_dir.items(): | ||||
|                 self.package_dir[name] = convert_path(path) | ||||
|         self.data_files = self.get_data_files() | ||||
| 
 | ||||
|         # Ick, copied straight from install_lib.py (fancy_getopt needs a | ||||
|         # type system!  Hell, *everything* needs a type system!!!) | ||||
|  |  | |||
							
								
								
									
										50
									
								
								Lib/distutils/tests/test_build_py.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								Lib/distutils/tests/test_build_py.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| """Tests for distutils.command.build_py.""" | ||||
| 
 | ||||
| import os | ||||
| import unittest | ||||
| 
 | ||||
| from distutils.command.build_py import build_py | ||||
| from distutils.core import Distribution | ||||
| 
 | ||||
| from distutils.tests import support | ||||
| 
 | ||||
| 
 | ||||
| class BuildPyTestCase(support.TempdirManager, unittest.TestCase): | ||||
| 
 | ||||
|     def test_package_data(self): | ||||
|         sources = self.mkdtemp() | ||||
|         f = open(os.path.join(sources, "__init__.py"), "w") | ||||
|         f.write("# Pretend this is a package.") | ||||
|         f.close() | ||||
|         f = open(os.path.join(sources, "README.txt"), "w") | ||||
|         f.write("Info about this package") | ||||
|         f.close() | ||||
| 
 | ||||
|         destination = self.mkdtemp() | ||||
| 
 | ||||
|         dist = Distribution({"packages": ["pkg"], | ||||
|                              "package_dir": {"pkg": sources}}) | ||||
|         # script_name need not exist, it just need to be initialized | ||||
|         dist.script_name = os.path.join(sources, "setup.py") | ||||
|         dist.command_obj["build"] = support.DummyCommand( | ||||
|             force=0, | ||||
|             build_lib=destination) | ||||
|         dist.packages = ["pkg"] | ||||
|         dist.package_data = {"pkg": ["README.txt"]} | ||||
|         dist.package_dir = {"pkg": sources} | ||||
| 
 | ||||
|         cmd = build_py(dist) | ||||
|         cmd.ensure_finalized() | ||||
|         self.assertEqual(cmd.package_data, dist.package_data) | ||||
| 
 | ||||
|         cmd.run() | ||||
| 
 | ||||
|         self.assertEqual(len(cmd.get_outputs()), 2) | ||||
|         pkgdest = os.path.join(destination, "pkg") | ||||
|         files = os.listdir(pkgdest) | ||||
|         self.assert_("__init__.py" in files) | ||||
|         self.assert_("README.txt" in files) | ||||
| 
 | ||||
| 
 | ||||
| def test_suite(): | ||||
|     return unittest.makeSuite(BuildPyTestCase) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Fred Drake
						Fred Drake