simpletap - Add color to test state when running on tty
This commit is contained in:
@@ -33,6 +33,23 @@ import warnings
|
|||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
|
|
||||||
|
def color(text, c):
|
||||||
|
"""
|
||||||
|
Add color on the keyword that identifies the state of the test
|
||||||
|
"""
|
||||||
|
if sys.stdout.isatty():
|
||||||
|
clear = "\033[0m"
|
||||||
|
|
||||||
|
colors = {
|
||||||
|
"red": "\033[1m\033[91m",
|
||||||
|
"yellow": "\033[1m\033[93m",
|
||||||
|
"green": "\033[1m\033[92m",
|
||||||
|
}
|
||||||
|
return colors[c] + text + clear
|
||||||
|
else:
|
||||||
|
return text
|
||||||
|
|
||||||
|
|
||||||
class TAPTestResult(unittest.result.TestResult):
|
class TAPTestResult(unittest.result.TestResult):
|
||||||
def __init__(self, stream, descriptions, verbosity):
|
def __init__(self, stream, descriptions, verbosity):
|
||||||
super(TAPTestResult, self).__init__(stream, descriptions, verbosity)
|
super(TAPTestResult, self).__init__(stream, descriptions, verbosity)
|
||||||
@@ -126,16 +143,20 @@ class TAPTestResult(unittest.result.TestResult):
|
|||||||
|
|
||||||
if status:
|
if status:
|
||||||
if status == "SKIP":
|
if status == "SKIP":
|
||||||
self.stream.writeln("skip {0} - {1}".format(
|
self.stream.writeln("{0} {1} - {2}".format(
|
||||||
self.testsRun, desc))
|
color("skip", "yellow"), self.testsRun, desc)
|
||||||
|
)
|
||||||
elif status == "EXPECTED_FAILURE":
|
elif status == "EXPECTED_FAILURE":
|
||||||
self.stream.writeln("ok {0} - {1}".format(
|
self.stream.writeln("{0} {1} - {2}".format(
|
||||||
self.testsRun, desc))
|
color("ok", "green"), self.testsRun, desc)
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
self.stream.writeln("not ok {0} - {1}".format(
|
self.stream.writeln("{0} {1} - {2}".format(
|
||||||
self.testsRun, desc))
|
color("not ok", "red"), self.testsRun, desc)
|
||||||
|
)
|
||||||
self.stream.writeln("# {0}: {1} {2}:".format(
|
self.stream.writeln("# {0}: {1} {2}:".format(
|
||||||
status, exception_name, trace_msg))
|
status, exception_name, trace_msg)
|
||||||
|
)
|
||||||
|
|
||||||
# Magic 3 is just for pretty indentation
|
# Magic 3 is just for pretty indentation
|
||||||
padding = " " * (len(status) + 3)
|
padding = " " * (len(status) + 3)
|
||||||
@@ -145,7 +166,9 @@ class TAPTestResult(unittest.result.TestResult):
|
|||||||
line = line.replace("\\n", "\n# ")
|
line = line.replace("\\n", "\n# ")
|
||||||
self.stream.writeln("#{0}{1}".format(padding, line))
|
self.stream.writeln("#{0}{1}".format(padding, line))
|
||||||
else:
|
else:
|
||||||
self.stream.writeln("ok {0} - {1}".format(self.testsRun, desc))
|
self.stream.writeln("{0} {1} - {2}".format(
|
||||||
|
color("ok", "green"), self.testsRun, desc)
|
||||||
|
)
|
||||||
|
|
||||||
# Flush all buffers to stdout
|
# Flush all buffers to stdout
|
||||||
self._mergeStdout()
|
self._mergeStdout()
|
||||||
|
|||||||
Reference in New Issue
Block a user