unify handling of reportcharacters across resultlog/junitxml plugins

--HG--
branch : trunk
This commit is contained in:
holger krekel
2010-05-20 14:35:13 +02:00
parent 925f75088d
commit 93f91c9607
7 changed files with 75 additions and 11 deletions

View File

@@ -56,10 +56,15 @@ class LogXML(object):
def append_failure(self, report):
self._opentestcase(report)
#msg = str(report.longrepr.reprtraceback.extraline)
self.appendlog('<failure message="test failure">%s</failure>',
report.longrepr)
if "xfail" in report.keywords:
self.appendlog(
'<skipped message="xfail-marked test passes unexpectedly"/>')
self.skipped += 1
else:
self.appendlog('<failure message="test failure">%s</failure>',
report.longrepr)
self.failed += 1
self._closetestcase()
self.failed += 1
def _opentestcase_collectfailure(self, report):
node = report.collector
@@ -95,7 +100,12 @@ class LogXML(object):
def append_skipped(self, report):
self._opentestcase(report)
self.appendlog("<skipped/>")
if "xfail" in report.keywords:
self.appendlog(
'<skipped message="expected test failure">%s</skipped>',
report.keywords['xfail'])
else:
self.appendlog("<skipped/>")
self._closetestcase()
self.skipped += 1

View File

@@ -73,7 +73,7 @@ class ResultLog(object):
code = report.shortrepr
if code == 'x':
longrepr = str(report.longrepr)
elif code == 'P':
elif code == 'X':
longrepr = ''
elif report.passed:
longrepr = ""

View File

@@ -225,7 +225,7 @@ def pytest_report_teststatus(report):
if report.skipped:
return "xfailed", "x", "xfail"
elif report.failed:
return "xpassed", "P", "XPASS"
return "xpassed", "X", "XPASS"
# called by the terminalreporter instance/plugin
def pytest_terminal_summary(terminalreporter):
@@ -242,7 +242,7 @@ def pytest_terminal_summary(terminalreporter):
for char in tr.reportchars:
if char == "x":
show_xfailed(terminalreporter, lines)
elif char == "P":
elif char == "X":
show_xpassed(terminalreporter, lines)
elif char == "f":
show_failed(terminalreporter, lines)