skipping: factor out _get_pos, pass only config to _get_report_str

This commit is contained in:
Daniel Hahler 2019-03-26 16:27:20 +01:00
parent ee96214a8d
commit 351529cb50
1 changed files with 19 additions and 11 deletions

View File

@ -207,20 +207,22 @@ def pytest_terminal_summary(terminalreporter):
def show_simple(terminalreporter, lines, stat): def show_simple(terminalreporter, lines, stat):
failed = terminalreporter.stats.get(stat) failed = terminalreporter.stats.get(stat)
if failed: if failed:
config = terminalreporter.config
for rep in failed: for rep in failed:
verbose_word = _get_report_str(terminalreporter, rep) verbose_word = _get_report_str(config, rep)
pos = terminalreporter.config.cwd_relative_nodeid(rep.nodeid) pos = _get_pos(config, rep)
lines.append("%s %s" % (verbose_word, pos)) lines.append("%s %s" % (verbose_word, pos))
def show_xfailed(terminalreporter, lines): def show_xfailed(terminalreporter, lines):
xfailed = terminalreporter.stats.get("xfailed") xfailed = terminalreporter.stats.get("xfailed")
if xfailed: if xfailed:
config = terminalreporter.config
for rep in xfailed: for rep in xfailed:
verbose_word = _get_report_str(terminalreporter, rep) verbose_word = _get_report_str(config, rep)
pos = terminalreporter.config.cwd_relative_nodeid(rep.nodeid) pos = _get_pos(config, rep)
reason = rep.wasxfail
lines.append("%s %s" % (verbose_word, pos)) lines.append("%s %s" % (verbose_word, pos))
reason = rep.wasxfail
if reason: if reason:
lines.append(" " + str(reason)) lines.append(" " + str(reason))
@ -228,9 +230,10 @@ def show_xfailed(terminalreporter, lines):
def show_xpassed(terminalreporter, lines): def show_xpassed(terminalreporter, lines):
xpassed = terminalreporter.stats.get("xpassed") xpassed = terminalreporter.stats.get("xpassed")
if xpassed: if xpassed:
config = terminalreporter.config
for rep in xpassed: for rep in xpassed:
verbose_word = _get_report_str(terminalreporter, rep) verbose_word = _get_report_str(config, rep)
pos = terminalreporter.config.cwd_relative_nodeid(rep.nodeid) pos = _get_pos(config, rep)
reason = rep.wasxfail reason = rep.wasxfail
lines.append("%s %s %s" % (verbose_word, pos, reason)) lines.append("%s %s %s" % (verbose_word, pos, reason))
@ -261,9 +264,9 @@ def show_skipped(terminalreporter, lines):
tr = terminalreporter tr = terminalreporter
skipped = tr.stats.get("skipped", []) skipped = tr.stats.get("skipped", [])
if skipped: if skipped:
verbose_word = _get_report_str(terminalreporter, report=skipped[0])
fskips = folded_skips(skipped) fskips = folded_skips(skipped)
if fskips: if fskips:
verbose_word = _get_report_str(terminalreporter.config, report=skipped[0])
for num, fspath, lineno, reason in fskips: for num, fspath, lineno, reason in fskips:
if reason.startswith("Skipped: "): if reason.startswith("Skipped: "):
reason = reason[9:] reason = reason[9:]
@ -283,13 +286,18 @@ def shower(stat):
return show_ return show_
def _get_report_str(terminalreporter, report): def _get_report_str(config, report):
_category, _short, verbose = terminalreporter.config.hook.pytest_report_teststatus( _category, _short, verbose = config.hook.pytest_report_teststatus(
report=report, config=terminalreporter.config report=report, config=config
) )
return verbose return verbose
def _get_pos(config, rep):
nodeid = config.cwd_relative_nodeid(rep.nodeid)
return nodeid
REPORTCHAR_ACTIONS = { REPORTCHAR_ACTIONS = {
"x": show_xfailed, "x": show_xfailed,
"X": show_xpassed, "X": show_xpassed,