Merge pull request #6817 from blueyed/argparsing-_split_lines-upstream
This commit is contained in:
commit
88214310af
|
@ -0,0 +1,2 @@
|
|||
Explicit new-lines in help texts of command-line options are preserved, allowing plugins better control
|
||||
of the help displayed to users.
|
|
@ -27,11 +27,12 @@ def pytest_addoption(parser):
|
|||
choices=("rewrite", "plain"),
|
||||
default="rewrite",
|
||||
metavar="MODE",
|
||||
help="""Control assertion debugging tools. 'plain'
|
||||
performs no assertion debugging. 'rewrite'
|
||||
(the default) rewrites assert statements in
|
||||
test modules on import to provide assert
|
||||
expression information.""",
|
||||
help=(
|
||||
"Control assertion debugging tools.\n"
|
||||
"'plain' performs no assertion debugging.\n"
|
||||
"'rewrite' (the default) rewrites assert statements in test modules"
|
||||
" on import to provide assert expression information."
|
||||
),
|
||||
)
|
||||
parser.addini(
|
||||
"enable_assertion_pass_hook",
|
||||
|
|
|
@ -397,9 +397,9 @@ def pytest_addoption(parser):
|
|||
"--failed-first",
|
||||
action="store_true",
|
||||
dest="failedfirst",
|
||||
help="run all tests but run the last failures first. "
|
||||
help="run all tests, but run the last failures first.\n"
|
||||
"This may re-order tests and thus lead to "
|
||||
"repeated fixture setup/teardown",
|
||||
"repeated fixture setup/teardown.",
|
||||
)
|
||||
group.addoption(
|
||||
"--nf",
|
||||
|
|
|
@ -509,3 +509,15 @@ class DropShorterLongHelpFormatter(argparse.HelpFormatter):
|
|||
formatted_action_invocation = ", ".join(return_list)
|
||||
action._formatted_action_invocation = formatted_action_invocation # type: ignore
|
||||
return formatted_action_invocation
|
||||
|
||||
def _split_lines(self, text, width):
|
||||
"""Wrap lines after splitting on original newlines.
|
||||
|
||||
This allows to have explicit line breaks in the help text.
|
||||
"""
|
||||
import textwrap
|
||||
|
||||
lines = []
|
||||
for line in text.splitlines():
|
||||
lines.extend(textwrap.wrap(line.strip(), width))
|
||||
return lines
|
||||
|
|
|
@ -57,7 +57,7 @@ def pytest_addoption(parser):
|
|||
dest="plugins",
|
||||
default=[],
|
||||
metavar="name",
|
||||
help="early-load given plugin module name or entry point (multi-allowed). "
|
||||
help="early-load given plugin module name or entry point (multi-allowed).\n"
|
||||
"To avoid loading of plugins, use the `no:` prefix, e.g. "
|
||||
"`no:doctest`.",
|
||||
)
|
||||
|
|
|
@ -79,8 +79,8 @@ def pytest_addoption(parser):
|
|||
dest="markexpr",
|
||||
default="",
|
||||
metavar="MARKEXPR",
|
||||
help="only run tests matching given mark expression. "
|
||||
"example: -m 'mark1 and not mark2'.",
|
||||
help="only run tests matching given mark expression.\n"
|
||||
"For example: -m 'mark1 and not mark2'.",
|
||||
)
|
||||
|
||||
group.addoption(
|
||||
|
|
|
@ -19,7 +19,10 @@ def test_help(testdir):
|
|||
assert result.ret == 0
|
||||
result.stdout.fnmatch_lines(
|
||||
"""
|
||||
*-v*verbose*
|
||||
-m MARKEXPR only run tests matching given mark expression.
|
||||
For example: -m 'mark1 and not mark2'.
|
||||
reporting:
|
||||
--durations=N *
|
||||
*setup.cfg*
|
||||
*minversion*
|
||||
*to see*markers*pytest --markers*
|
||||
|
|
Loading…
Reference in New Issue