--- a/config/mozunit.py
+++ b/config/mozunit.py
@@ -27,21 +27,41 @@ class _MozTestResult(_TestResult):
self.descriptions = descriptions
def getDescription(self, test):
if self.descriptions:
return test.shortDescription() or str(test)
else:
return str(test)
+ def printStatus(self, status, test, message=''):
+ line = "{status} | {file} | {test}{sep}{message}".format(
+ status=status,
+ file=inspect.getfile(test.__class__),
+ test=test._testMethodName,
+ sep=', ' if message else '',
+ message=message,
+ )
+ self.stream.writeln(line)
+
def addSuccess(self, test):
_TestResult.addSuccess(self, test)
- filename = inspect.getfile(test.__class__)
- testname = test._testMethodName
- self.stream.writeln("TEST-PASS | {0} | {1}".format(filename, testname))
+ self.printStatus('TEST-PASS', test)
+
+ def addSkip(self, test, reason):
+ _TestResult.addSkip(self, test, reason)
+ self.printStatus('TEST-SKIP', test)
+
+ def addExpectedFailure(self, test, err):
+ _TestResult.addExpectedFailure(self, test, err)
+ self.printStatus('TEST-KNOWN-FAIL', test)
+
+ def addUnexpectedSuccess(self, test):
+ _TestResult.addUnexpectedSuccess(self, test)
+ self.printStatus('TEST-UNEXPECTED-PASS', test)
def addError(self, test, err):
_TestResult.addError(self, test, err)
self.printFail(test, err)
self.stream.writeln("ERROR: {0}".format(self.getDescription(test)))
self.stream.writeln(self.errors[-1][1])
def addFailure(self, test, err):
@@ -53,18 +73,18 @@ class _MozTestResult(_TestResult):
def printFail(self, test, err):
exctype, value, tb = err
# Skip test runner traceback levels
while tb and self._is_relevant_tb_level(tb):
tb = tb.tb_next
if not tb:
self.stream.writeln("TEST-UNEXPECTED-FAIL | NO TRACEBACK |")
_f, _ln, _t = inspect.getframeinfo(tb)[:3]
- self.stream.writeln("TEST-UNEXPECTED-FAIL | {0} | line {1}, {2}: {3}"
- .format(_f, _ln, _t, value.message))
+ self.printStatus('TEST-UNEXPECTED-FAIL', test,
+ 'line {0}: {1}'.format(_ln, value.message))
class MozTestRunner(_TestRunner):
def _makeResult(self):
return _MozTestResult(self.stream, self.descriptions)
def run(self, test):
result = self._makeResult()
test(result)