mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	 382067b3cf
			
		
	
	
		382067b3cf
		
	
	
	
	
		
			
			I need this for some tests, and it makes code clearer. This commit also changes some assertEqual calls to use (actual, expected) order and fix some pyflakes warnings.
		
			
				
	
	
		
			102 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Tests for distutils.cmd."""
 | |
| import os
 | |
| import logging
 | |
| 
 | |
| from packaging.command.cmd import Command
 | |
| from packaging.dist import Distribution
 | |
| from packaging.errors import PackagingOptionError
 | |
| from packaging.tests import support, unittest
 | |
| 
 | |
| 
 | |
| class MyCmd(Command):
 | |
|     def initialize_options(self):
 | |
|         pass
 | |
| 
 | |
| 
 | |
| class CommandTestCase(support.LoggingCatcher,
 | |
|                       unittest.TestCase):
 | |
| 
 | |
|     def setUp(self):
 | |
|         super(CommandTestCase, self).setUp()
 | |
|         dist = Distribution()
 | |
|         self.cmd = MyCmd(dist)
 | |
| 
 | |
|     def test_make_file(self):
 | |
|         cmd = self.cmd
 | |
| 
 | |
|         # making sure it raises when infiles is not a string or a list/tuple
 | |
|         self.assertRaises(TypeError, cmd.make_file,
 | |
|                           infiles=1, outfile='', func='func', args=())
 | |
| 
 | |
|         # making sure execute gets called properly
 | |
|         def _execute(func, args, exec_msg, level):
 | |
|             self.assertEqual(exec_msg, 'generating out from in')
 | |
|         cmd.force = True
 | |
|         cmd.execute = _execute
 | |
|         cmd.make_file(infiles='in', outfile='out', func='func', args=())
 | |
| 
 | |
|     def test_dump_options(self):
 | |
|         cmd = self.cmd
 | |
|         cmd.option1 = 1
 | |
|         cmd.option2 = 1
 | |
|         cmd.user_options = [('option1', '', ''), ('option2', '', '')]
 | |
|         cmd.dump_options()
 | |
| 
 | |
|         wanted = ["command options for 'MyCmd':", '  option1 = 1',
 | |
|                   '  option2 = 1']
 | |
|         msgs = self.get_logs(logging.INFO)
 | |
|         self.assertEqual(msgs, wanted)
 | |
| 
 | |
|     def test_ensure_string(self):
 | |
|         cmd = self.cmd
 | |
|         cmd.option1 = 'ok'
 | |
|         cmd.ensure_string('option1')
 | |
| 
 | |
|         cmd.option2 = None
 | |
|         cmd.ensure_string('option2', 'xxx')
 | |
|         self.assertTrue(hasattr(cmd, 'option2'))
 | |
| 
 | |
|         cmd.option3 = 1
 | |
|         self.assertRaises(PackagingOptionError, cmd.ensure_string, 'option3')
 | |
| 
 | |
|     def test_ensure_string_list(self):
 | |
|         cmd = self.cmd
 | |
|         cmd.option1 = 'ok,dok'
 | |
|         cmd.ensure_string_list('option1')
 | |
|         self.assertEqual(cmd.option1, ['ok', 'dok'])
 | |
| 
 | |
|         cmd.yes_string_list = ['one', 'two', 'three']
 | |
|         cmd.yes_string_list2 = 'ok'
 | |
|         cmd.ensure_string_list('yes_string_list')
 | |
|         cmd.ensure_string_list('yes_string_list2')
 | |
|         self.assertEqual(cmd.yes_string_list, ['one', 'two', 'three'])
 | |
|         self.assertEqual(cmd.yes_string_list2, ['ok'])
 | |
| 
 | |
|         cmd.not_string_list = ['one', 2, 'three']
 | |
|         cmd.not_string_list2 = object()
 | |
|         self.assertRaises(PackagingOptionError,
 | |
|                           cmd.ensure_string_list, 'not_string_list')
 | |
| 
 | |
|         self.assertRaises(PackagingOptionError,
 | |
|                           cmd.ensure_string_list, 'not_string_list2')
 | |
| 
 | |
|     def test_ensure_filename(self):
 | |
|         cmd = self.cmd
 | |
|         cmd.option1 = __file__
 | |
|         cmd.ensure_filename('option1')
 | |
|         cmd.option2 = 'xxx'
 | |
|         self.assertRaises(PackagingOptionError, cmd.ensure_filename, 'option2')
 | |
| 
 | |
|     def test_ensure_dirname(self):
 | |
|         cmd = self.cmd
 | |
|         cmd.option1 = os.path.dirname(__file__) or os.curdir
 | |
|         cmd.ensure_dirname('option1')
 | |
|         cmd.option2 = 'xxx'
 | |
|         self.assertRaises(PackagingOptionError, cmd.ensure_dirname, 'option2')
 | |
| 
 | |
| 
 | |
| def test_suite():
 | |
|     return unittest.makeSuite(CommandTestCase)
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     unittest.main(defaultTest='test_suite')
 |