From bd3cce7d4b1ee30a1c229acf030b0d3975e13248 Mon Sep 17 00:00:00 2001 From: Renato Alves Date: Thu, 11 Jun 2015 23:35:07 +0100 Subject: [PATCH] simpletap: Show more information in expected failures --- test/simpletap/__init__.py | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/test/simpletap/__init__.py b/test/simpletap/__init__.py index 501e88eaf..f48e3afc3 100644 --- a/test/simpletap/__init__.py +++ b/test/simpletap/__init__.py @@ -121,25 +121,26 @@ class TAPTestResult(unittest.result.TestResult): self._restoreStdout() desc = self.getDescription(test) - trace_msg = None try: - exception, msg, _ = err + exception, msg, tb = err except (TypeError, ValueError): exception_name = "" msg = err + tb = None else: exception_name = exception.__name__ msg = str(msg) - # Extract line where error happened for easier debugging - _, _, tb = sys.exc_info() - trace = traceback.extract_tb(tb) - for t in trace: - # t = (filename, line_number, function_name, raw_line) - if t[2].startswith("test"): - trace_msg = "on file {0} line {1} in {2}: '{3}'".format(*t) - break + trace_msg = "" + + # Extract line where error happened for easier debugging + trace = traceback.extract_tb(tb) + for t in trace: + # t = (filename, line_number, function_name, raw_line) + if t[2].startswith("test"): + trace_msg = " on file {0} line {1} in {2}: '{3}'".format(*t) + break if status: if status == "SKIP": @@ -154,9 +155,13 @@ class TAPTestResult(unittest.result.TestResult): self.stream.writeln("{0} {1} - {2}".format( color("not ok", "red"), self.testsRun, desc) ) - self.stream.writeln("# {0}: {1} {2}:".format( - status, exception_name, trace_msg) - ) + + if exception_name: + self.stream.writeln("# {0}: {1}{2}:".format( + status, exception_name, trace_msg) + ) + else: + self.stream.writeln("# {0}:".format(status)) # Magic 3 is just for pretty indentation padding = " " * (len(status) + 3)