MCPcopy Index your code
hub / github.com/python/cpython / test_subparser

Method test_subparser

Lib/test/test_argparse.py:6622–6648  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

6620 self.assertEqual(NS(foo=['a', 'b', '--'], bar=[]), args)
6621
6622 def test_subparser(self):
6623 parser = argparse.ArgumentParser(exit_on_error=False)
6624 parser.add_argument('foo')
6625 subparsers = parser.add_subparsers()
6626 parser1 = subparsers.add_parser('run')
6627 parser1.add_argument('-f')
6628 parser1.add_argument('bar', nargs='*')
6629
6630 args = parser.parse_args(['x', 'run', 'a', 'b', '-f', 'c'])
6631 self.assertEqual(NS(foo='x', f='c', bar=['a', 'b']), args)
6632 args = parser.parse_args(['x', 'run', 'a', 'b', '--', '-f', 'c'])
6633 self.assertEqual(NS(foo='x', f=None, bar=['a', 'b', '-f', 'c']), args)
6634 args = parser.parse_args(['x', 'run', 'a', '--', 'b', '-f', 'c'])
6635 self.assertEqual(NS(foo='x', f=None, bar=['a', 'b', '-f', 'c']), args)
6636 args = parser.parse_args(['x', 'run', '--', 'a', 'b', '-f', 'c'])
6637 self.assertEqual(NS(foo='x', f=None, bar=['a', 'b', '-f', 'c']), args)
6638 args = parser.parse_args(['x', '--', 'run', 'a', 'b', '-f', 'c'])
6639 self.assertEqual(NS(foo='x', f='c', bar=['a', 'b']), args)
6640 args = parser.parse_args(['--', 'x', 'run', 'a', 'b', '-f', 'c'])
6641 self.assertEqual(NS(foo='x', f='c', bar=['a', 'b']), args)
6642 args = parser.parse_args(['x', 'run', '--', 'a', '--', 'b'])
6643 self.assertEqual(NS(foo='x', f=None, bar=['a', '--', 'b']), args)
6644 args = parser.parse_args(['x', '--', 'run', '--', 'a', '--', 'b'])
6645 self.assertEqual(NS(foo='x', f=None, bar=['a', '--', 'b']), args)
6646 self.assertRaisesRegex(argparse.ArgumentError,
6647 "invalid choice: '--'",
6648 parser.parse_args, ['--', 'x', '--', 'run', 'a', 'b'])
6649
6650 def test_subparser_after_multiple_argument_option(self):
6651 parser = argparse.ArgumentParser(exit_on_error=False)

Callers

nothing calls this directly

Calls 7

add_subparsersMethod · 0.95
parse_argsMethod · 0.95
add_parserMethod · 0.80
assertRaisesRegexMethod · 0.80
NSClass · 0.70
add_argumentMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected