mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
[3.13] GH-87041: Fix incorrect indentation in argparse help (GH-124230) (#124373)
GH-87041: Fix incorrect indentation in argparse help (GH-124230)
In case of usage a long command along with max_help_position more than
the length of the command, the command's help was incorrectly started
on the new line.
(cherry picked from commit 7ee9921734
)
Co-authored-by: Savannah Ostrowski <savannahostrowski@gmail.com>
Co-authored-by: Pavel Ditenbir <pavel.ditenbir@gmail.com>
This commit is contained in:
parent
67aa68f1b4
commit
8d3a0fecbe
3 changed files with 44 additions and 4 deletions
|
@ -4981,6 +4981,46 @@ class TestHelpMetavarTypeFormatter(HelpTestCase):
|
|||
version = ''
|
||||
|
||||
|
||||
class TestHelpUsageLongSubparserCommand(TestCase):
|
||||
"""Test that subparser commands are formatted correctly in help"""
|
||||
maxDiff = None
|
||||
|
||||
def test_parent_help(self):
|
||||
def custom_formatter(prog):
|
||||
return argparse.RawTextHelpFormatter(prog, max_help_position=50)
|
||||
|
||||
parent_parser = argparse.ArgumentParser(
|
||||
prog='PROG',
|
||||
formatter_class=custom_formatter
|
||||
)
|
||||
|
||||
cmd_subparsers = parent_parser.add_subparsers(title="commands",
|
||||
metavar='CMD',
|
||||
help='command to use')
|
||||
cmd_subparsers.add_parser("add",
|
||||
help="add something")
|
||||
|
||||
cmd_subparsers.add_parser("remove",
|
||||
help="remove something")
|
||||
|
||||
cmd_subparsers.add_parser("a-very-long-command",
|
||||
help="command that does something")
|
||||
|
||||
parser_help = parent_parser.format_help()
|
||||
self.assertEqual(parser_help, textwrap.dedent('''\
|
||||
usage: PROG [-h] CMD ...
|
||||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
commands:
|
||||
CMD command to use
|
||||
add add something
|
||||
remove remove something
|
||||
a-very-long-command command that does something
|
||||
'''))
|
||||
|
||||
|
||||
# =====================================
|
||||
# Optional/Positional constructor tests
|
||||
# =====================================
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue