Example #1
0
    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)])
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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')
Example #7
0
    def test_default_value(self):
        parser = ArgumentParser()
        parser.add_argument('--foo', action=actions.ToggleFalseAction)

        args = parser.parse_args([])

        self.assertTrue(args.foo)
Example #8
0
    def test_store_false(self):
        parser = ArgumentParser()
        parser.add_argument('--foo', action=actions.StoreFalseAction)

        args = parser.parse_args(['--foo'])

        self.assertFalse(args.foo)
Example #9
0
    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)
Example #10
0
    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')
Example #11
0
    def test_with_no_arg(self):
        parser = ArgumentParser()
        parser.add_argument('--foo', action=actions.ToggleFalseAction)

        args = parser.parse_args(['--foo'])

        self.assertFalse(args.foo)
Example #12
0
    def test_suppressed_default_value(self):
        parser = ArgumentParser()
        parser.add_argument('--foo', action=actions.UnsupportedAction)

        args = parser.parse_args([])

        self.assertFalse(hasattr(args, 'foo'))
Example #13
0
    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')
Example #14
0
    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')
Example #15
0
    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')
Example #16
0
    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'])
Example #17
0
    def test_default_value(self):
        parser = ArgumentParser()
        parser.add_argument('--foo', action=actions.AppendAction)

        args = parser.parse_args([])
        self.assertEqual(args.foo, [])
Example #18
0
    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'])