gh-113008: Correct argparse usage output for required, mutually exclusive groups (GH-113085)

This commit is contained in:
Payton 2024-09-24 09:14:35 -05:00 committed by GitHub
parent 4a5e4aade4
commit d21b0b5d36
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 26 additions and 2 deletions

View file

@ -2902,6 +2902,29 @@ class TestMutuallyExclusiveGroupErrors(TestCase):
'''
self.assertEqual(parser.format_help(), textwrap.dedent(expected))
def test_optional_order(self):
parser = ErrorRaisingArgumentParser(prog='PROG')
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--foo')
group.add_argument('bar', nargs='?')
expected = '''\
usage: PROG [-h] (--foo FOO | bar)
positional arguments:
bar
options:
-h, --help show this help message and exit
--foo FOO
'''
self.assertEqual(parser.format_help(), textwrap.dedent(expected))
parser = ErrorRaisingArgumentParser(prog='PROG')
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('bar', nargs='?')
group.add_argument('--foo')
self.assertEqual(parser.format_help(), textwrap.dedent(expected))
def test_help_subparser_all_mutually_exclusive_group_members_suppressed(self):
self.maxDiff = None
parser = ErrorRaisingArgumentParser(prog='PROG')