mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00
[3.13] gh-121151: argparse: Fix wrapping of long usage text of arguments inside a mutually exclusive groups (GH-121159) (#122777)
gh-121151: argparse: Fix wrapping of long usage text of arguments inside a mutually exclusive groups (GH-121159)
(cherry picked from commit 013a092975
)
Co-authored-by: Ali Hamdan <ali.hamdan.dev@gmail.com>
This commit is contained in:
parent
8c01b34268
commit
f1a6d2254f
3 changed files with 36 additions and 7 deletions
|
@ -3002,12 +3002,12 @@ class TestMutuallyExclusiveLong(MEMixin, TestCase):
|
|||
]
|
||||
|
||||
usage_when_not_required = '''\
|
||||
usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ]
|
||||
[--klmno KLMNO | --pqrst PQRST]
|
||||
usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ] [--klmno KLMNO |
|
||||
--pqrst PQRST]
|
||||
'''
|
||||
usage_when_required = '''\
|
||||
usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ]
|
||||
(--klmno KLMNO | --pqrst PQRST)
|
||||
usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ] (--klmno KLMNO |
|
||||
--pqrst PQRST)
|
||||
'''
|
||||
help = '''\
|
||||
|
||||
|
@ -4390,6 +4390,24 @@ class TestHelpUsageNoWhitespaceCrash(TestCase):
|
|||
''')
|
||||
self.assertEqual(parser.format_usage(), usage)
|
||||
|
||||
def test_long_mutex_groups_wrap(self):
|
||||
parser = argparse.ArgumentParser(prog='PROG')
|
||||
g = parser.add_mutually_exclusive_group()
|
||||
g.add_argument('--op1', metavar='MET', nargs='?')
|
||||
g.add_argument('--op2', metavar=('MET1', 'MET2'), nargs='*')
|
||||
g.add_argument('--op3', nargs='*')
|
||||
g.add_argument('--op4', metavar=('MET1', 'MET2'), nargs='+')
|
||||
g.add_argument('--op5', nargs='+')
|
||||
g.add_argument('--op6', nargs=3)
|
||||
g.add_argument('--op7', metavar=('MET1', 'MET2', 'MET3'), nargs=3)
|
||||
|
||||
usage = textwrap.dedent('''\
|
||||
usage: PROG [-h] [--op1 [MET] | --op2 [MET1 [MET2 ...]] | --op3 [OP3 ...] |
|
||||
--op4 MET1 [MET2 ...] | --op5 OP5 [OP5 ...] | --op6 OP6 OP6 OP6 |
|
||||
--op7 MET1 MET2 MET3]
|
||||
''')
|
||||
self.assertEqual(parser.format_usage(), usage)
|
||||
|
||||
|
||||
class TestHelpVariableExpansion(HelpTestCase):
|
||||
"""Test that variables are expanded properly in help messages"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue