def test_parse_arguments_2(self):
command_str = "script --verbose -d"
self.parser.add_argument("verbose", arg_type=bool)
self.parser.add_argument("d") # here we assume d is str
result, missing_args = self.parser.parse_arguments(command_str)
self.assertTrue(result)
self.assertIsNone(missing_args)
self.assertEqual(self.parser.get_argument("verbose"), True)
self.assertEqual(self.parser.get_argument("d"), True) # because d is by default str. this is not very reasonable. By the description, parse_arguments should convert arguments to their type.
Current
def __init__(self):
"""
Initialize the fields.
self.arguments is a dict that stores the args in a command line
self.requried is a set that stores the required arguments
self.types is a dict that stores type of every arguments.
>>> parser.arguments
{'key1': 'value1', 'option1': True}
>>> parser.required
{'arg1'}
>>> parser.types
{'arg1': 'type1'}
"""
self.arguments = {}
self.required = set()
self.types = {}
Better
def __init__(self):
"""
Initialize the fields.
self.arguments is a dict that stores the args in a command line
self.requried is a set that stores the required arguments
self.types is a dict that stores type of every arguments.
>>> parser.arguments
{'key1': 'value1', 'option1': True}
>>> parser.required
{'arg1'}
>>> parser.types
{'arg1': type1} # quote here is misleading
"""
self.arguments = {}
self.required = set()
self.types = {}
Wrong
Correct
Current
Better