|
|
|
@ -1761,6 +1761,14 @@ class TestAddSubparsers(TestCase): |
|
|
|
parser2.add_argument('-y', choices='123', help='y help') |
|
|
|
parser2.add_argument('z', type=complex, nargs='*', help='z help') |
|
|
|
|
|
|
|
# add third sub-parser |
|
|
|
parser3_kwargs = dict(description='3 description') |
|
|
|
if subparser_help: |
|
|
|
parser3_kwargs['help'] = '3 help' |
|
|
|
parser3 = subparsers.add_parser('3', **parser3_kwargs) |
|
|
|
parser3.add_argument('t', type=int, help='t help') |
|
|
|
parser3.add_argument('u', nargs='...', help='u help') |
|
|
|
|
|
|
|
# return the main parser |
|
|
|
return parser |
|
|
|
|
|
|
|
@ -1790,6 +1798,10 @@ class TestAddSubparsers(TestCase): |
|
|
|
self.parser.parse_args('--foo 0.125 1 c'.split()), |
|
|
|
NS(foo=True, bar=0.125, w=None, x='c'), |
|
|
|
) |
|
|
|
self.assertEqual( |
|
|
|
self.parser.parse_args('-1.5 3 11 -- a --foo 7 -- b'.split()), |
|
|
|
NS(foo=False, bar=-1.5, t=11, u=['a', '--foo', '7', '--', 'b']), |
|
|
|
) |
|
|
|
|
|
|
|
def test_parse_known_args(self): |
|
|
|
self.assertEqual( |
|
|
|
@ -1824,15 +1836,15 @@ class TestAddSubparsers(TestCase): |
|
|
|
|
|
|
|
def test_help(self): |
|
|
|
self.assertEqual(self.parser.format_usage(), |
|
|
|
'usage: PROG [-h] [--foo] bar {1,2} ...\n') |
|
|
|
'usage: PROG [-h] [--foo] bar {1,2,3} ...\n') |
|
|
|
self.assertEqual(self.parser.format_help(), textwrap.dedent('''\ |
|
|
|
usage: PROG [-h] [--foo] bar {1,2} ... |
|
|
|
usage: PROG [-h] [--foo] bar {1,2,3} ... |
|
|
|
|
|
|
|
main description |
|
|
|
|
|
|
|
positional arguments: |
|
|
|
bar bar help |
|
|
|
{1,2} command help |
|
|
|
{1,2,3} command help |
|
|
|
|
|
|
|
optional arguments: |
|
|
|
-h, --help show this help message and exit |
|
|
|
@ -1843,15 +1855,15 @@ class TestAddSubparsers(TestCase): |
|
|
|
# Make sure - is still used for help if it is a non-first prefix char |
|
|
|
parser = self._get_parser(prefix_chars='+:-') |
|
|
|
self.assertEqual(parser.format_usage(), |
|
|
|
'usage: PROG [-h] [++foo] bar {1,2} ...\n') |
|
|
|
'usage: PROG [-h] [++foo] bar {1,2,3} ...\n') |
|
|
|
self.assertEqual(parser.format_help(), textwrap.dedent('''\ |
|
|
|
usage: PROG [-h] [++foo] bar {1,2} ... |
|
|
|
usage: PROG [-h] [++foo] bar {1,2,3} ... |
|
|
|
|
|
|
|
main description |
|
|
|
|
|
|
|
positional arguments: |
|
|
|
bar bar help |
|
|
|
{1,2} command help |
|
|
|
{1,2,3} command help |
|
|
|
|
|
|
|
optional arguments: |
|
|
|
-h, --help show this help message and exit |
|
|
|
@ -1862,15 +1874,15 @@ class TestAddSubparsers(TestCase): |
|
|
|
def test_help_alternate_prefix_chars(self): |
|
|
|
parser = self._get_parser(prefix_chars='+:/') |
|
|
|
self.assertEqual(parser.format_usage(), |
|
|
|
'usage: PROG [+h] [++foo] bar {1,2} ...\n') |
|
|
|
'usage: PROG [+h] [++foo] bar {1,2,3} ...\n') |
|
|
|
self.assertEqual(parser.format_help(), textwrap.dedent('''\ |
|
|
|
usage: PROG [+h] [++foo] bar {1,2} ... |
|
|
|
usage: PROG [+h] [++foo] bar {1,2,3} ... |
|
|
|
|
|
|
|
main description |
|
|
|
|
|
|
|
positional arguments: |
|
|
|
bar bar help |
|
|
|
{1,2} command help |
|
|
|
{1,2,3} command help |
|
|
|
|
|
|
|
optional arguments: |
|
|
|
+h, ++help show this help message and exit |
|
|
|
@ -1879,18 +1891,19 @@ class TestAddSubparsers(TestCase): |
|
|
|
|
|
|
|
def test_parser_command_help(self): |
|
|
|
self.assertEqual(self.command_help_parser.format_usage(), |
|
|
|
'usage: PROG [-h] [--foo] bar {1,2} ...\n') |
|
|
|
'usage: PROG [-h] [--foo] bar {1,2,3} ...\n') |
|
|
|
self.assertEqual(self.command_help_parser.format_help(), |
|
|
|
textwrap.dedent('''\ |
|
|
|
usage: PROG [-h] [--foo] bar {1,2} ... |
|
|
|
usage: PROG [-h] [--foo] bar {1,2,3} ... |
|
|
|
|
|
|
|
main description |
|
|
|
|
|
|
|
positional arguments: |
|
|
|
bar bar help |
|
|
|
{1,2} command help |
|
|
|
{1,2,3} command help |
|
|
|
1 1 help |
|
|
|
2 2 help |
|
|
|
3 3 help |
|
|
|
|
|
|
|
optional arguments: |
|
|
|
-h, --help show this help message and exit |
|
|
|
@ -2001,6 +2014,7 @@ class TestAddSubparsers(TestCase): |
|
|
|
1 (1alias1, 1alias2) |
|
|
|
1 help |
|
|
|
2 2 help |
|
|
|
3 3 help |
|
|
|
""")) |
|
|
|
|
|
|
|
# ============ |
|
|
|
|