mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	 261ccdce48
			
		
	
	
		261ccdce48
		
	
	
	
	
		
			
			When an option is changed on a command object, calling ensure_finalized for a second time will not run finalize_options again, because ensure_finalized is a no-op the second time. By resetting the finalized attribute, we can be sure that whatever computation takes place in finalize_options will happen again. (In test_command_clean, I removed two lines that were a no-op.)
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Tests for distutils.command.clean."""
 | |
| import os
 | |
| 
 | |
| from packaging.command.clean import clean
 | |
| from packaging.tests import unittest, support
 | |
| 
 | |
| 
 | |
| class cleanTestCase(support.TempdirManager, support.LoggingCatcher,
 | |
|                     unittest.TestCase):
 | |
| 
 | |
|     def test_simple_run(self):
 | |
|         pkg_dir, dist = self.create_dist()
 | |
|         cmd = clean(dist)
 | |
| 
 | |
|         # let's add some elements clean should remove
 | |
|         dirs = [(d, os.path.join(pkg_dir, d))
 | |
|                 for d in ('build_temp', 'build_lib', 'bdist_base',
 | |
|                 'build_scripts', 'build_base')]
 | |
| 
 | |
|         for name, path in dirs:
 | |
|             os.mkdir(path)
 | |
|             setattr(cmd, name, path)
 | |
|             if name == 'build_base':
 | |
|                 continue
 | |
|             for f in ('one', 'two', 'three'):
 | |
|                 self.write_file((path, f))
 | |
| 
 | |
|         # let's run the command
 | |
|         cmd.all = True
 | |
|         cmd.ensure_finalized()
 | |
|         cmd.run()
 | |
| 
 | |
|         # make sure the files where removed
 | |
|         for name, path in dirs:
 | |
|             self.assertFalse(os.path.exists(path),
 | |
|                              '%r was not removed' % path)
 | |
| 
 | |
|         # let's run the command again (should spit warnings but succeed)
 | |
|         cmd.run()
 | |
| 
 | |
| 
 | |
| def test_suite():
 | |
|     return unittest.makeSuite(cleanTestCase)
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     unittest.main(defaultTest="test_suite")
 |