diff options
author | Thomas Waldmann <tw AT waldmann-edv DOT de> | 2014-12-15 18:48:37 +0100 |
---|---|---|
committer | Thomas Waldmann <tw AT waldmann-edv DOT de> | 2014-12-15 18:48:37 +0100 |
commit | 0c626aade1b2c0f18ee37916b015fa9eaf93a925 (patch) | |
tree | 6dbfb143df101f52b135327d0d4815dd82eb0a33 /test | |
parent | 6e5f8a80a16c6e040330ec662e937184c2aec328 (diff) | |
download | argparse-0c626aade1b2c0f18ee37916b015fa9eaf93a925.tar.gz |
added aliases support, thanks to Roland Kammerer
Diffstat (limited to 'test')
-rw-r--r-- | test/test_argparse.py | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/test/test_argparse.py b/test/test_argparse.py index 89284ad..4eb4581 100644 --- a/test/test_argparse.py +++ b/test/test_argparse.py @@ -1754,7 +1754,8 @@ class TestAddSubparsers(TestCase): def assertArgumentParserError(self, *args, **kwargs): self.assertRaises(ArgumentParserError, *args, **kwargs) - def _get_parser(self, subparser_help=False, prefix_chars=None): + def _get_parser(self, subparser_help=False, prefix_chars=None, + aliases=False): # create a parser with a subparsers argument if prefix_chars: parser = ErrorRaisingArgumentParser( @@ -1770,13 +1771,21 @@ class TestAddSubparsers(TestCase): 'bar', type=float, help='bar help') # check that only one subparsers argument can be added - subparsers = parser.add_subparsers(help='command help') + subparsers_kwargs = {} + if aliases: + subparsers_kwargs['metavar'] = 'COMMAND' + subparsers_kwargs['title'] = 'commands' + else: + subparsers_kwargs['help'] = 'command help' + subparsers = parser.add_subparsers(**subparsers_kwargs) self.assertArgumentParserError(parser.add_subparsers) # add first sub-parser parser1_kwargs = dict(description='1 description') if subparser_help: parser1_kwargs['help'] = '1 help' + if aliases: + parser1_kwargs['aliases'] = ['1alias1', '1alias2'] parser1 = subparsers.add_parser('1', **parser1_kwargs) parser1.add_argument('-w', type=int, help='w help') parser1.add_argument('x', choices='abc', help='x help') @@ -1993,6 +2002,44 @@ class TestAddSubparsers(TestCase): -y {1,2,3} y help ''')) + def test_alias_invocation(self): + parser = self._get_parser(aliases=True) + self.assertEqual( + parser.parse_known_args('0.5 1alias1 b'.split()), + (NS(foo=False, bar=0.5, w=None, x='b'), []), + ) + self.assertEqual( + parser.parse_known_args('0.5 1alias2 b'.split()), + (NS(foo=False, bar=0.5, w=None, x='b'), []), + ) + + def test_error_alias_invocation(self): + parser = self._get_parser(aliases=True) + self.assertArgumentParserError(parser.parse_args, + '0.5 1alias3 b'.split()) + + def test_alias_help(self): + parser = self._get_parser(aliases=True, subparser_help=True) + self.maxDiff = None + self.assertEqual(parser.format_help(), textwrap.dedent("""\ + usage: PROG [-h] [--foo] bar COMMAND ... + + main description + + positional arguments: + bar bar help + + optional arguments: + -h, --help show this help message and exit + --foo foo help + + commands: + COMMAND + 1 (1alias1, 1alias2) + 1 help + 2 2 help + """)) + # ============ # Groups tests # ============ |