示例#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')
示例#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']))
示例#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)
示例#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)
示例#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')
示例#6
0
 def test_subcommand_conflict_resoltion(self):
     @subcommands.subcommand
     def subcmd(help):
         pass
     def main():
         pass
     parser = cmdline.create_parser(main)
示例#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')
示例#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)")
示例#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)
示例#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)
示例#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)
示例#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)
示例#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')
示例#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)')
示例#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')
示例#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)
示例#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)
示例#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())
示例#19
0
    def test_subcommand_conflict_resoltion(self):
        @subcommands.subcommand
        def subcmd(help):
            pass

        def main():
            pass

        parser = cmdline.create_parser(main)
示例#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())
示例#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')
示例#22
0
文件: main.py 项目: aliles/begins
 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)
示例#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())
示例#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
示例#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())
示例#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())
示例#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())
示例#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
示例#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
示例#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())
示例#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
示例#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
示例#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())
示例#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')
示例#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)
示例#36
0
    def test_variable_arguments(self):
        def main(*variable_arguments):
            pass

        parser = cmdline.create_parser(main)
        self.assertIn('variable_arguments', parser.format_help())
示例#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')
示例#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)
示例#39
0
    def test_variable_keyword_arguments(self):
        def main(**args):
            pass

        with self.assertRaises(ValueError):
            cmdline.create_parser(main)
示例#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())
示例#41
0
    def test_function_description(self):
        def main(a):
            "program description"

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

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

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

        parser = cmdline.create_parser(main)
示例#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())
示例#46
0
    def test_void_function(self):
        def main():
            pass

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

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

        parser = cmdline.create_parser(main)