This commit is contained in:
Pavel Březina 2024-07-03 12:59:48 +00:00 committed by GitHub
commit bce6973f2e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 35 additions and 1 deletions

View File

@ -154,6 +154,14 @@ def pytest_addoption(parser: Parser) -> None:
dest="no_summary", dest="no_summary",
help="Disable summary", help="Disable summary",
) )
group._addoption(
"--fold-skipped",
action="store",
dest="foldskipped",
choices=["no", "yes"],
default="yes",
help="Whether to fold skipped tests in short summary or not. " "Default: yes.",
)
group._addoption( group._addoption(
"-q", "-q",
"--quiet", "--quiet",
@ -371,6 +379,7 @@ class TerminalReporter:
self._screen_width = self._tw.fullwidth self._screen_width = self._tw.fullwidth
self.currentfspath: None | Path | str | int = None self.currentfspath: None | Path | str | int = None
self.reportchars = getreportopt(config) self.reportchars = getreportopt(config)
self.foldskipped = True if config.option.foldskipped == "yes" else False
self.hasmarkup = self._tw.hasmarkup self.hasmarkup = self._tw.hasmarkup
self.isatty = file.isatty() self.isatty = file.isatty()
self._progress_nodeids_reported: set[str] = set() self._progress_nodeids_reported: set[str] = set()
@ -1232,7 +1241,7 @@ class TerminalReporter:
line += " - " + str(reason) line += " - " + str(reason)
lines.append(line) lines.append(line)
def show_skipped(lines: list[str]) -> None: def show_skipped_folded(lines: list[str]) -> None:
skipped: list[CollectReport] = self.stats.get("skipped", []) skipped: list[CollectReport] = self.stats.get("skipped", [])
fskips = _folded_skips(self.startpath, skipped) if skipped else [] fskips = _folded_skips(self.startpath, skipped) if skipped else []
if not fskips: if not fskips:
@ -1252,6 +1261,31 @@ class TerminalReporter:
else: else:
lines.append("%s [%d] %s: %s" % (markup_word, num, fspath, reason)) lines.append("%s [%d] %s: %s" % (markup_word, num, fspath, reason))
def show_skipped_unfolded(lines: list[str]) -> None:
skipped: list[CollectReport] = self.stats.get("skipped", [])
for rep in skipped:
assert rep.longrepr is not None
assert isinstance(rep.longrepr, tuple), (rep, rep.longrepr)
assert len(rep.longrepr) == 3, (rep, rep.longrepr)
verbose_word, verbose_markup = rep._get_verbose_word_with_markup(
self.config, {_color_for_type["warnings"]: True}
)
markup_word = self._tw.markup(verbose_word, **verbose_markup)
nodeid = _get_node_id_with_markup(self._tw, self.config, rep)
line = f"{markup_word} {nodeid}"
reason = rep.longrepr[2]
if reason:
line += " - " + str(reason)
lines.append(line)
def show_skipped(lines: list[str]) -> None:
if self.foldskipped:
show_skipped_folded(lines)
else:
show_skipped_unfolded(lines)
REPORTCHAR_ACTIONS: Mapping[str, Callable[[list[str]], None]] = { REPORTCHAR_ACTIONS: Mapping[str, Callable[[list[str]], None]] = {
"x": show_xfailed, "x": show_xfailed,
"X": show_xpassed, "X": show_xpassed,