refine and extend custom error reporting particularly for collection-related errors
--HG-- branch : trunk
This commit is contained in:
@@ -126,6 +126,12 @@ class BaseReport(object):
|
||||
longrepr.toterminal(out)
|
||||
else:
|
||||
out.line(str(longrepr))
|
||||
|
||||
class CollectErrorRepr(BaseReport):
|
||||
def __init__(self, msg):
|
||||
self.longrepr = msg
|
||||
def toterminal(self, out):
|
||||
out.line(str(self.longrepr), red=True)
|
||||
|
||||
class ItemTestReport(BaseReport):
|
||||
failed = passed = skipped = False
|
||||
@@ -188,16 +194,16 @@ class CollectReport(BaseReport):
|
||||
self.passed = True
|
||||
self.result = result
|
||||
else:
|
||||
style = "short"
|
||||
if collector.config.getvalue("fulltrace"):
|
||||
style = "long"
|
||||
self.longrepr = self.collector._repr_failure_py(excinfo,
|
||||
style=style)
|
||||
if excinfo.errisinstance(py.test.skip.Exception):
|
||||
self.skipped = True
|
||||
self.reason = str(excinfo.value)
|
||||
self.longrepr = self.collector._repr_failure_py(excinfo, "line")
|
||||
else:
|
||||
self.failed = True
|
||||
errorinfo = self.collector.repr_failure(excinfo)
|
||||
if not hasattr(errorinfo, "toterminal"):
|
||||
errorinfo = CollectErrorRepr(errorinfo)
|
||||
self.longrepr = errorinfo
|
||||
|
||||
def getnode(self):
|
||||
return self.collector
|
||||
@@ -448,3 +454,4 @@ def importorskip(modname, minversion=None):
|
||||
modname, verattr, minversion))
|
||||
return mod
|
||||
|
||||
|
||||
|
||||
@@ -274,7 +274,6 @@ class TerminalReporter:
|
||||
if not report.passed:
|
||||
if report.failed:
|
||||
self.stats.setdefault("error", []).append(report)
|
||||
msg = report.longrepr.reprcrash.message
|
||||
self.write_fspath_result(report.collector.fspath, "E")
|
||||
elif report.skipped:
|
||||
self.stats.setdefault("skipped", []).append(report)
|
||||
@@ -403,7 +402,7 @@ class TerminalReporter:
|
||||
msg = self._getfailureheadline(rep)
|
||||
if not hasattr(rep, 'when'):
|
||||
# collect
|
||||
msg = "ERROR during collection " + msg
|
||||
msg = "ERROR collecting " + msg
|
||||
elif rep.when == "setup":
|
||||
msg = "ERROR at setup of " + msg
|
||||
elif rep.when == "teardown":
|
||||
|
||||
Reference in New Issue
Block a user