MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_subparser

Method test_subparser

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

Source from the content-addressed store, hash-verified

6487 self.assertEqual(NS(foo='a', bar=['--', 'b', '--', 'c']), args)
6488
6489 def test_subparser(self):
6490 parser = argparse.ArgumentParser(exit_on_error=False)
6491 parser.add_argument('foo')
6492 subparsers = parser.add_subparsers()
6493 parser1 = subparsers.add_parser('run')
6494 parser1.add_argument('-f')
6495 parser1.add_argument('bar', nargs='*')
6496
6497 args = parser.parse_args(['x', 'run', 'a', 'b', '-f', 'c'])
6498 self.assertEqual(NS(foo='x', f='c', bar=['a', 'b']), args)
6499 args = parser.parse_args(['x', 'run', 'a', 'b', '--', '-f', 'c'])
6500 self.assertEqual(NS(foo='x', f=None, bar=['a', 'b', '-f', 'c']), args)
6501 args = parser.parse_args(['x', 'run', 'a', '--', 'b', '-f', 'c'])
6502 self.assertEqual(NS(foo='x', f=None, bar=['a', 'b', '-f', 'c']), args)
6503 args = parser.parse_args(['x', 'run', '--', 'a', 'b', '-f', 'c'])
6504 self.assertEqual(NS(foo='x', f=None, bar=['a', 'b', '-f', 'c']), args)
6505 args = parser.parse_args(['x', '--', 'run', 'a', 'b', '-f', 'c'])
6506 self.assertEqual(NS(foo='x', f='c', bar=['a', 'b']), args)
6507 args = parser.parse_args(['--', 'x', 'run', 'a', 'b', '-f', 'c'])
6508 self.assertEqual(NS(foo='x', f='c', bar=['a', 'b']), args)
6509 args = parser.parse_args(['x', 'run', '--', 'a', '--', 'b'])
6510 self.assertEqual(NS(foo='x', f=None, bar=['a', '--', 'b']), args)
6511 args = parser.parse_args(['x', '--', 'run', '--', 'a', '--', 'b'])
6512 self.assertEqual(NS(foo='x', f=None, bar=['a', '--', 'b']), args)
6513 self.assertRaisesRegex(argparse.ArgumentError,
6514 "invalid choice: '--'",
6515 parser.parse_args, ['--', 'x', '--', 'run', 'a', 'b'])
6516
6517 def test_subparser_after_multiple_argument_option(self):
6518 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