summaryrefslogtreecommitdiff
path: root/src/_pytest/skipping.py
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2019-04-07 18:21:37 +0200
committerDaniel Hahler <git@thequod.de>2019-04-07 18:22:04 +0200
commitc70ecd49caf44322c0ebd3a5bd56bf555d006b8c (patch)
tree51849423391aa9c7c9f6743633e03eee1a774e37 /src/_pytest/skipping.py
parentb54943842363c261730b2fce8edbe92d1b9ba84a (diff)
downloadpytest-c70ecd49caf44322c0ebd3a5bd56bf555d006b8c.tar.gz
cleanup: move terminal summary code to terminal plugin
Fixes https://github.com/pytest-dev/pytest/issues/5067.
Diffstat (limited to 'src/_pytest/skipping.py')
-rw-r--r--src/_pytest/skipping.py125
1 files changed, 0 insertions, 125 deletions
diff --git a/src/_pytest/skipping.py b/src/_pytest/skipping.py
index 22acafbdd..3f488fad5 100644
--- a/src/_pytest/skipping.py
+++ b/src/_pytest/skipping.py
@@ -183,128 +183,3 @@ def pytest_report_teststatus(report):
return "xfailed", "x", "XFAIL"
elif report.passed:
return "xpassed", "X", "XPASS"
-
-
-# called by the terminalreporter instance/plugin
-
-
-def pytest_terminal_summary(terminalreporter):
- tr = terminalreporter
- if not tr.reportchars:
- return
-
- lines = []
- for char in tr.reportchars:
- action = REPORTCHAR_ACTIONS.get(char, lambda tr, lines: None)
- action(terminalreporter, lines)
-
- if lines:
- tr._tw.sep("=", "short test summary info")
- for line in lines:
- tr._tw.line(line)
-
-
-def show_simple(terminalreporter, lines, stat):
- failed = terminalreporter.stats.get(stat)
- if failed:
- config = terminalreporter.config
- for rep in failed:
- verbose_word = _get_report_str(config, rep)
- pos = _get_pos(config, rep)
- lines.append("%s %s" % (verbose_word, pos))
-
-
-def show_xfailed(terminalreporter, lines):
- xfailed = terminalreporter.stats.get("xfailed")
- if xfailed:
- config = terminalreporter.config
- for rep in xfailed:
- verbose_word = _get_report_str(config, rep)
- pos = _get_pos(config, rep)
- lines.append("%s %s" % (verbose_word, pos))
- reason = rep.wasxfail
- if reason:
- lines.append(" " + str(reason))
-
-
-def show_xpassed(terminalreporter, lines):
- xpassed = terminalreporter.stats.get("xpassed")
- if xpassed:
- config = terminalreporter.config
- for rep in xpassed:
- verbose_word = _get_report_str(config, rep)
- pos = _get_pos(config, rep)
- reason = rep.wasxfail
- lines.append("%s %s %s" % (verbose_word, pos, reason))
-
-
-def folded_skips(skipped):
- d = {}
- for event in skipped:
- key = event.longrepr
- assert len(key) == 3, (event, key)
- keywords = getattr(event, "keywords", {})
- # folding reports with global pytestmark variable
- # this is workaround, because for now we cannot identify the scope of a skip marker
- # TODO: revisit after marks scope would be fixed
- if (
- event.when == "setup"
- and "skip" in keywords
- and "pytestmark" not in keywords
- ):
- key = (key[0], None, key[2])
- d.setdefault(key, []).append(event)
- values = []
- for key, events in d.items():
- values.append((len(events),) + key)
- return values
-
-
-def show_skipped(terminalreporter, lines):
- tr = terminalreporter
- skipped = tr.stats.get("skipped", [])
- if skipped:
- fskips = folded_skips(skipped)
- if fskips:
- verbose_word = _get_report_str(terminalreporter.config, report=skipped[0])
- for num, fspath, lineno, reason in fskips:
- if reason.startswith("Skipped: "):
- reason = reason[9:]
- if lineno is not None:
- lines.append(
- "%s [%d] %s:%d: %s"
- % (verbose_word, num, fspath, lineno + 1, reason)
- )
- else:
- lines.append("%s [%d] %s: %s" % (verbose_word, num, fspath, reason))
-
-
-def shower(stat):
- def show_(terminalreporter, lines):
- return show_simple(terminalreporter, lines, stat)
-
- return show_
-
-
-def _get_report_str(config, report):
- _category, _short, verbose = config.hook.pytest_report_teststatus(
- report=report, config=config
- )
- return verbose
-
-
-def _get_pos(config, rep):
- nodeid = config.cwd_relative_nodeid(rep.nodeid)
- return nodeid
-
-
-REPORTCHAR_ACTIONS = {
- "x": show_xfailed,
- "X": show_xpassed,
- "f": shower("failed"),
- "F": shower("failed"),
- "s": show_skipped,
- "S": show_skipped,
- "p": shower("passed"),
- "E": shower("error"),
-}