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')
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']))
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)
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')
def test_subcommand_conflict_resoltion(self): @subcommands.subcommand def subcmd(help): pass def main(): pass parser = cmdline.create_parser(main)
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')
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)")
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)
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)
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)
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')
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)')
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())
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())
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')
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)
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())
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
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())
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
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
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')
def test_variable_arguments(self): def main(*variable_arguments): pass parser = cmdline.create_parser(main) self.assertIn('variable_arguments', parser.format_help())
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)
def test_variable_keyword_arguments(self): def main(**args): pass with self.assertRaises(ValueError): cmdline.create_parser(main)
def test_no_short_args(self): def main(alpha): pass parser = cmdline.create_parser(main, short_args=False) self.assertNotIn(' -a ', parser.format_help())
def test_function_description(self): def main(a): "program description" parser = cmdline.create_parser(main) self.assertEqual(parser.description, main.__doc__)
def test_function_description(self): def main(a): 'program description' parser = cmdline.create_parser(main) self.assertEqual(parser.description, main.__doc__)
def test_conflict_resoltion(self): def main(help): pass parser = cmdline.create_parser(main)
def test_no_short_args(self): def main(alpha): pass parser = cmdline.create_parser(main, short_args=False) self.assertNotIn(" -a ", parser.format_help())
def test_void_function(self): def main(): pass parser = cmdline.create_parser(main) self.assertIs(parser, None)
def test_variable_arguments(self): def main(*variable_arguments): pass parser = cmdline.create_parser(main) self.assertIn("variable_arguments", parser.format_help())