def test_store_false(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.StoreFalseAction) args = parser.parse_args(['--foo']) self.assertFalse(args.foo)
def test_valid_int(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.StoreIntAction) for i in [0, 1, 42, -64]: args = parser.parse_args(['--foo', six.text_type(i)]) self.assertEqual(args.foo, i)
def test_invalid_int(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.StoreIntAction) for i in [0.0, True, 'bar']: with utils.quiet_output(), self.assertRaises(SystemExit): parser.parse_args(['--foo', six.text_type(i)])
def test_store_const(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.StoreAction, const='bar') args = parser.parse_args(['--foo']) self.assertEqual(args.foo, 'bar')
def test_suppressed_default_value(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.UnsupportedAction) args = parser.parse_args([]) self.assertFalse(hasattr(args, 'foo'))
def test_default_value(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.ToggleFalseAction) args = parser.parse_args([]) self.assertTrue(args.foo)
def test_with_no_arg(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.ToggleFalseAction) args = parser.parse_args(['--foo']) self.assertFalse(args.foo)
def test_store_value_multiple_destinations(self): parser = ArgumentParser() parser.add_argument('--foo', dests=['foo', 'bar'], action=actions.StoreAction) args = parser.parse_args(['--foo', 'baz']) self.assertEqual(args.foo, 'baz') self.assertEqual(args.bar, 'baz')
def test_with_optional_true_arg(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.ToggleFalseAction) for value in BoolType.TRUE_VALUES: args = parser.parse_args(['--foo', str(value)]) self.assertFalse(args.foo) args = parser.parse_args(['--foo={}'.format(value)]) self.assertFalse(args.foo)
def test_with_optional_false_arg(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.ToggleFalseAction) for value in BoolType.FALSE_VALUES: args = parser.parse_args(['--foo', six.text_type(value)]) self.assertTrue(args.foo) args = parser.parse_args(['--foo={}'.format(value)]) self.assertTrue(args.foo)
def test_parse_known_args_adds_defaults_to_dests(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.StoreAction, dests=['foo', 'bar'], default='FooBar') # parse_args calls parse_known_args under the hood args = parser.parse_args([]) self.assertEqual(args.foo, 'FooBar') self.assertEqual(args.bar, 'FooBar')
def test_last_wins(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.ToggleFalseAction) args = parser.parse_args(['--foo=TRUE', '--foo', 'FALSE']) self.assertTrue(args.foo) args = parser.parse_args(['--foo=FALSE', '--foo']) self.assertFalse(args.foo) args = parser.parse_args(['--foo=FALSE', '--foo', 'TRUE']) self.assertFalse(args.foo)
def test_custom_call_func(self): def test_func(action, parser, namespace, values, option_string=None): for dest in action.dests: setattr(namespace, dest, values) parser = ArgumentParser() parser.add_argument('--foo', action=actions.CustomCallAction, call_func=test_func, nargs=Nargs.SINGLE) args = parser.parse_args(['--foo', 'boo']) self.assertEqual(args.foo, 'boo')
def test_custom_error_message(self): message = 'custom error message' parser = ArgumentParser() action = parser.add_argument('--foo', action=actions.UnsupportedAction, message=message) self.assertEqual(action.message, message) with utils.redirect_stderr() as stderr, self.assertRaises(SystemExit): parser.parse_args(['--foo']) self.assertIn(message, stderr)
def test_choices(self): parser = ArgumentParser() action = parser.add_argument('--foo', action=actions.StoreAction, choices=['bar', 'baz']) self.assertEqual(action.nargs, Nargs.OPTIONAL) with utils.quiet_output(), self.assertRaises(SystemExit): parser.parse_args(['--foo', 'qux']) args = parser.parse_args(['--foo', 'bar']) self.assertEqual(args.foo, 'bar')
def test_append(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.AppendAction) args = parser.parse_args(['--foo', 'bar', '--foo', 'baz']) self.assertEqual(args.foo, ['bar', 'baz'])
def test_default_value(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.AppendAction) args = parser.parse_args([]) self.assertEqual(args.foo, [])
def test_raises_parser_error(self): parser = ArgumentParser() parser.add_argument('--foo', action=actions.UnsupportedAction) with utils.quiet_output(), self.assertRaises(SystemExit): parser.parse_args(['--foo'])