Beispiel #1
0
    def test_configfile_missing_config_file(self, expanduser):
        def main(arg, unk):
            pass

        expanduser.return_value = os.path.join(os.curdir, 'tests')
        with self.assertWarns(UserWarning):
            cmdline.create_parser(main, config_section='foo')
Beispiel #2
0
    def test_configfile_wrong_config_section(self, expanduser):
        def main(arg, unk, foo_arg, bar_arg):
            pass

        expanduser.return_value = os.path.join(os.curdir, 'tests')
        with self.assertRaises(TypeError):
            cmdline.create_parser(main,
                                  config_file='config_test.cfg',
                                  config_section=('foo', 'bar'))
        with self.assertRaises(TypeError):
            cmdline.create_parser(main,
                                  config_file='config_test.cfg',
                                  config_section=set(['foo', 'bar']))
Beispiel #3
0
    def test_keyword_argument(self):
        def main(opt=Ellipsis):
            pass

        parser = cmdline.create_parser(main)
        self.assertEqual(len(parser._optionals._actions), 2)
        self.assertIs(parser._optionals._actions[1].default, Ellipsis)
Beispiel #4
0
    def test_keyword_argument(self):
        def main(opt=Ellipsis):
            pass

        parser = cmdline.create_parser(main)
        self.assertEqual(len(parser._optionals._actions), 2)
        self.assertIs(parser._optionals._actions[1].default, Ellipsis)
Beispiel #5
0
 def test_lexical_order(self):
     def main(zeta, alpha, delta):
         pass
     parser = cmdline.create_parser(main, lexical_order=True)
     self.assertEqual(parser._optionals._actions[1].dest, 'alpha')
     self.assertEqual(parser._optionals._actions[2].dest, 'delta')
     self.assertEqual(parser._optionals._actions[3].dest, 'zeta')
Beispiel #6
0
 def test_subcommand_conflict_resoltion(self):
     @subcommands.subcommand
     def subcmd(help):
         pass
     def main():
         pass
     parser = cmdline.create_parser(main)
Beispiel #7
0
    def test_void_function(self):
        def main():
            pass

        parser = cmdline.create_parser(main)
        self.assertEqual(len(parser._optionals._actions), 1)
        self.assertEqual(parser._optionals._actions[0].dest, 'help')
Beispiel #8
0
    def test_help_strings(self):
        def main(a, b=None):
            pass

        parser = cmdline.create_parser(main)
        self.assertIs(parser._optionals._actions[1].help, None)
        self.assertEqual(parser._optionals._actions[2].help, "(default: %(default)s)")
Beispiel #9
0
 def test_tracebacks(self):
     @extensions.Tracebacks
     def main():
         pass
     parser = cmdline.create_parser(main)
     self.assertEqual(len(parser._action_groups), 3)
     self.assertEqual(len(parser._optionals._actions), 3)
Beispiel #10
0
 def test_configfile(self, expanduser):
     def main(arg, unk):
         pass
     expanduser.return_value = os.path.join(os.curdir, 'tests')
     parser = cmdline.create_parser(main, config_file='config_test.cfg')
     self.assertEqual(parser._optionals._actions[1].default, 'value')
     self.assertEqual(parser._optionals._actions[2].default, cmdline.NODEFAULT)
Beispiel #11
0
    def test_positional_arguments(self):
        def main(a, b, c):
            pass

        parser = cmdline.create_parser(main)
        self.assertEqual(len(parser._optionals._actions), 4)
        self.assertIs(parser._optionals._actions[1].default, cmdline.NODEFAULT)
Beispiel #12
0
    def test_positional_arguments(self):
        def main(a, b, c):
            pass

        parser = cmdline.create_parser(main)
        self.assertEqual(len(parser._optionals._actions), 4)
        self.assertIs(parser._optionals._actions[1].default, cmdline.NODEFAULT)
Beispiel #13
0
 def test_false_flag(self):
     def main(flag=False):
         pass
     parser = cmdline.create_parser(main)
     self.assertIs(parser._optionals._actions[1].default, False)
     self.assertEqual(parser._optionals._actions[1].dest, 'flag')
     self.assertIs(parser._optionals._actions[2].default, False)
     self.assertEqual(parser._optionals._actions[2].dest, 'flag')
Beispiel #14
0
    def test_help_strings(self):
        def main(a, b=None):
            pass

        parser = cmdline.create_parser(main)
        self.assertIs(parser._optionals._actions[1].help, None)
        self.assertEqual(parser._optionals._actions[2].help,
                         '(default: %(default)s)')
Beispiel #15
0
    def test_lexical_order(self):
        def main(zeta, alpha, delta):
            pass

        parser = cmdline.create_parser(main, lexical_order=True)
        self.assertEqual(parser._optionals._actions[1].dest, 'alpha')
        self.assertEqual(parser._optionals._actions[2].dest, 'delta')
        self.assertEqual(parser._optionals._actions[3].dest, 'zeta')
Beispiel #16
0
    def test_tracebacks(self):
        @extensions.Tracebacks
        def main():
            pass

        parser = cmdline.create_parser(main)
        self.assertEqual(len(parser._action_groups), 3)
        self.assertEqual(len(parser._optionals._actions), 3)
Beispiel #17
0
    def test_configfile(self, expanduser):
        def main(arg, unk):
            pass

        expanduser.return_value = os.path.join(os.curdir, 'tests')
        parser = cmdline.create_parser(main, config_file='config_test.cfg')
        self.assertEqual(parser._optionals._actions[1].default, 'value')
        self.assertEqual(parser._optionals._actions[2].default,
                         cmdline.NODEFAULT)
Beispiel #18
0
 def test_subcommand(self):
     @subcommands.subcommand
     def subcmd():
         pass
     def main():
         pass
     parser = cmdline.create_parser(main)
     self.assertEqual(len(parser._action_groups), 3)
     self.assertIn('subcmd', parser.format_help())
Beispiel #19
0
    def test_subcommand_conflict_resoltion(self):
        @subcommands.subcommand
        def subcmd(help):
            pass

        def main():
            pass

        parser = cmdline.create_parser(main)
Beispiel #20
0
 def test_subcommand_group(self):
     @subcommands.subcommand(group='named.collector')
     def subcmd():
         pass
     def main():
         pass
     parser = cmdline.create_parser(main, sub_group='named.collector')
     self.assertEqual(len(parser._action_groups), 3)
     self.assertIn('subcmd', parser.format_help())
Beispiel #21
0
    def test_true_flag(self):
        def main(flag=True):
            pass

        parser = cmdline.create_parser(main)
        self.assertIs(parser._optionals._actions[1].default, True)
        self.assertEqual(parser._optionals._actions[1].dest, 'flag')
        self.assertIs(parser._optionals._actions[2].default, True)
        self.assertEqual(parser._optionals._actions[2].dest, 'flag')
Beispiel #22
0
 def __init__(self, func, auto_convert=False, cmd_delim=None,
         sub_group=None, collector=None, **kwargs):
     if auto_convert:
         func = convert(_automatic=True)(func)
     Wrapping.__init__(self, func)
     self._cmd_delim = cmd_delim
     self._group = sub_group
     self._collector = collector
     self._parser = cmdline.create_parser(func, sub_group=self._group,
             collector=self._collector, **kwargs)
Beispiel #23
0
 def test_plugins(self, iep):
     def main():
         pass
     def subcmd():
         pass
     def entry_points(group, *args):
         yield subcmd
     iep.side_effect = entry_points
     parser = cmdline.create_parser(main, plugins='entry.point')
     self.assertEqual(len(parser._action_groups), 3)
     self.assertIn('subcmd', parser.format_help())
Beispiel #24
0
 def test_env_disabled(self):
     def main(one, two):
         pass
     try:
         original = os.environ
         os.environ = {'ONE': 1}
         parser = cmdline.create_parser(main)
         self.assertEqual(parser._optionals._actions[1].default, cmdline.NODEFAULT)
         self.assertIs(parser._optionals._actions[2].default, cmdline.NODEFAULT)
     finally:
         os.environ = original
Beispiel #25
0
    def test_subcommand(self):
        @subcommands.subcommand
        def subcmd():
            pass

        def main():
            pass

        parser = cmdline.create_parser(main)
        self.assertEqual(len(parser._action_groups), 3)
        self.assertIn('subcmd', parser.format_help())
Beispiel #26
0
    def test_subcommand_group(self):
        @subcommands.subcommand(group='named.collector')
        def subcmd():
            pass

        def main():
            pass

        parser = cmdline.create_parser(main, sub_group='named.collector')
        self.assertEqual(len(parser._action_groups), 3)
        self.assertIn('subcmd', parser.format_help())
Beispiel #27
0
    def test_subcommand_description(self):
        @subcommands.subcommand
        def subcmd():
            """SUBCOMMAND_HELP

            SUBCOMMAND_DESC
            """
        def main():
            pass
        parser = cmdline.create_parser(main)
        self.assertIn('SUBCOMMAND_HELP', parser.format_help())
        self.assertNotIn('SUBCOMMAND_DESC', parser.format_help())
Beispiel #28
0
 def test_env_prefixes(self):
     def main(one, two, three=True):
         pass
     try:
         original = os.environ
         os.environ = {'X_ONE': 1, 'TWO': 2, 'X_THREE': 'no'}
         parser = cmdline.create_parser(main, env_prefix='X_')
         self.assertEqual(parser._optionals._actions[1].default, 1)
         self.assertIs(parser._optionals._actions[2].default, cmdline.NODEFAULT)
         self.assertIs(parser._optionals._actions[3].default, False)
     finally:
         os.environ = original
Beispiel #29
0
    def test_env_prefixes(self):
        def main(one, two):
            pass

        try:
            original = os.environ
            os.environ = {"X_ONE": 1, "TWO": 2}
            parser = cmdline.create_parser(main, env_prefix="X_")
            self.assertEqual(parser._optionals._actions[1].default, 1)
            self.assertIs(parser._optionals._actions[2].default, cmdline.NODEFAULT)
        finally:
            os.environ = original
Beispiel #30
0
    def test_plugins(self, iep):
        def main():
            pass

        def subcmd():
            pass

        def entry_points(group, *args):
            yield subcmd

        iep.side_effect = entry_points
        parser = cmdline.create_parser(main, plugins='entry.point')
        self.assertEqual(len(parser._action_groups), 3)
        self.assertIn('subcmd', parser.format_help())
Beispiel #31
0
    def test_env_disabled(self):
        def main(one, two):
            pass

        try:
            original = os.environ
            os.environ = {'ONE': 1}
            parser = cmdline.create_parser(main)
            self.assertEqual(parser._optionals._actions[1].default,
                             cmdline.NODEFAULT)
            self.assertIs(parser._optionals._actions[2].default,
                          cmdline.NODEFAULT)
        finally:
            os.environ = original
Beispiel #32
0
    def test_env_prefixes(self):
        def main(one, two, three=True):
            pass

        try:
            original = os.environ
            os.environ = {'X_ONE': 1, 'TWO': 2, 'X_THREE': 'no'}
            parser = cmdline.create_parser(main, env_prefix='X_')
            self.assertEqual(parser._optionals._actions[1].default, 1)
            self.assertIs(parser._optionals._actions[2].default,
                          cmdline.NODEFAULT)
            self.assertIs(parser._optionals._actions[3].default, False)
        finally:
            os.environ = original
Beispiel #33
0
    def test_subcommand_description(self):
        @subcommands.subcommand
        def subcmd():
            """SUBCOMMAND_HELP

            SUBCOMMAND_DESC
            """

        def main():
            pass

        parser = cmdline.create_parser(main)
        self.assertIn('SUBCOMMAND_HELP', parser.format_help())
        self.assertNotIn('SUBCOMMAND_DESC', parser.format_help())
Beispiel #34
0
    def test_configfile_multiple_config_section(self, expanduser):
        def main(arg, unk, foo_arg, bar_arg):
            pass

        expanduser.return_value = os.path.join(os.curdir, 'tests')
        parser = cmdline.create_parser(main,
                                       config_file='config_test.cfg',
                                       config_section=['foo', 'bar'])
        self.assertEqual(parser._optionals._actions[1].default, 'alt_value')
        self.assertNotEqual(parser._optionals._actions[1].default,
                            'bar_alt_value')
        self.assertEqual(parser._optionals._actions[2].default,
                         cmdline.NODEFAULT)
        self.assertEqual(parser._optionals._actions[3].default, 'foo_value')
        self.assertEqual(parser._optionals._actions[4].default, 'bar_value')
Beispiel #35
0
 def __init__(self,
              func,
              auto_convert=False,
              cmd_delim=None,
              sub_group=None,
              collector=None,
              **kwargs):
     if auto_convert:
         func = convert(_automatic=True)(func)
     Wrapping.__init__(self, func)
     self._cmd_delim = cmd_delim
     self._group = sub_group
     self._collector = collector
     self._parser = cmdline.create_parser(func,
                                          sub_group=self._group,
                                          collector=self._collector,
                                          **kwargs)
Beispiel #36
0
    def test_variable_arguments(self):
        def main(*variable_arguments):
            pass

        parser = cmdline.create_parser(main)
        self.assertIn('variable_arguments', parser.format_help())
Beispiel #37
0
 def test_void_function(self):
     def main():
         pass
     parser = cmdline.create_parser(main)
     self.assertEqual(len(parser._optionals._actions), 1)
     self.assertEqual(parser._optionals._actions[0].dest, 'help')
Beispiel #38
0
 def __init__(self, func, sub_group=None, collector=None, **kwargs):
     Wrapping.__init__(self, func)
     self._group = sub_group
     self._collector = collector
     self._parser = cmdline.create_parser(func, sub_group=self._group,
             collector=self._collector, **kwargs)
Beispiel #39
0
    def test_variable_keyword_arguments(self):
        def main(**args):
            pass

        with self.assertRaises(ValueError):
            cmdline.create_parser(main)
Beispiel #40
0
    def test_no_short_args(self):
        def main(alpha):
            pass

        parser = cmdline.create_parser(main, short_args=False)
        self.assertNotIn(' -a ', parser.format_help())
Beispiel #41
0
    def test_function_description(self):
        def main(a):
            "program description"

        parser = cmdline.create_parser(main)
        self.assertEqual(parser.description, main.__doc__)
Beispiel #42
0
    def test_function_description(self):
        def main(a):
            'program description'

        parser = cmdline.create_parser(main)
        self.assertEqual(parser.description, main.__doc__)
Beispiel #43
0
    def test_variable_keyword_arguments(self):
        def main(**args):
            pass

        with self.assertRaises(ValueError):
            cmdline.create_parser(main)
Beispiel #44
0
    def test_conflict_resoltion(self):
        def main(help):
            pass

        parser = cmdline.create_parser(main)
Beispiel #45
0
    def test_no_short_args(self):
        def main(alpha):
            pass

        parser = cmdline.create_parser(main, short_args=False)
        self.assertNotIn(" -a ", parser.format_help())
Beispiel #46
0
    def test_void_function(self):
        def main():
            pass

        parser = cmdline.create_parser(main)
        self.assertIs(parser, None)
Beispiel #47
0
    def test_variable_arguments(self):
        def main(*variable_arguments):
            pass

        parser = cmdline.create_parser(main)
        self.assertIn("variable_arguments", parser.format_help())
Beispiel #48
0
    def test_conflict_resoltion(self):
        def main(help):
            pass

        parser = cmdline.create_parser(main)