Show More
@@ -94,13 +94,48 b" if os.name != 'nt':" | |||
|
94 | 94 | try: # is pygments installed |
|
95 | 95 | import pygments |
|
96 | 96 | import pygments.lexers as lexers |
|
97 | import pygments.lexer as lexer | |
|
97 | 98 | import pygments.formatters as formatters |
|
99 | import pygments.token as token | |
|
100 | import pygments.style as style | |
|
98 | 101 | pygmentspresent = True |
|
99 | 102 | difflexer = lexers.DiffLexer() |
|
100 | 103 | terminal256formatter = formatters.Terminal256Formatter() |
|
101 | 104 | except ImportError: |
|
102 | 105 | pass |
|
103 | 106 | |
|
107 | if pygmentspresent: | |
|
108 | class TestRunnerStyle(style.Style): | |
|
109 | default_style = "" | |
|
110 | skipped = token.string_to_tokentype("Token.Generic.Skipped") | |
|
111 | failed = token.string_to_tokentype("Token.Generic.Failed") | |
|
112 | error = token.string_to_tokentype("Token.Generic.Error") | |
|
113 | skippedname = token.string_to_tokentype("Token.Generic.SName") | |
|
114 | failedname = token.string_to_tokentype("Token.Generic.FName") | |
|
115 | styles = { | |
|
116 | skipped: '#e5e5e5', | |
|
117 | skippedname: '#00ffff', | |
|
118 | failed: '#7f0000', | |
|
119 | failedname: '#ff0000', | |
|
120 | } | |
|
121 | ||
|
122 | class TestRunnerLexer(lexer.RegexLexer): | |
|
123 | tokens = { | |
|
124 | 'root': [ | |
|
125 | (r'^Skipped', token.Generic.Skipped, 'skipped'), | |
|
126 | (r'^Failed ', token.Generic.Failed, 'failed'), | |
|
127 | (r'^ERROR: ', token.Generic.Failed, 'failed'), | |
|
128 | ], | |
|
129 | 'skipped': [ | |
|
130 | (r'[\w-]+\.t', token.Generic.SName), | |
|
131 | (r':.*', token.Generic.Skipped), | |
|
132 | ], | |
|
133 | 'failed': [ | |
|
134 | (r'[\w-]+\.t', token.Generic.FName), | |
|
135 | (r'(:| ).*', token.Generic.Failed), | |
|
136 | ] | |
|
137 | } | |
|
138 | ||
|
104 | 139 | if sys.version_info > (3, 5, 0): |
|
105 | 140 | PYTHON3 = True |
|
106 | 141 | xrange = range # we use xrange in one place, and we'd rather not use range |
@@ -1598,7 +1633,14 b' class TestResult(unittest._TextTestResul' | |||
|
1598 | 1633 | self.stream.write('t') |
|
1599 | 1634 | else: |
|
1600 | 1635 | if not self._options.nodiff: |
|
1601 |
|
|
|
1636 | formatted = '\nERROR: %s output changed\n' % test | |
|
1637 | if self.color: | |
|
1638 | formatted = pygments.highlight( | |
|
1639 | formatted, | |
|
1640 | TestRunnerLexer(), | |
|
1641 | formatters.Terminal256Formatter( | |
|
1642 | style=TestRunnerStyle)) | |
|
1643 | self.stream.write(formatted) | |
|
1602 | 1644 | self.stream.write('!') |
|
1603 | 1645 | |
|
1604 | 1646 | self.stream.flush() |
@@ -2000,9 +2042,23 b' class TextTestRunner(unittest.TextTestRu' | |||
|
2000 | 2042 | |
|
2001 | 2043 | if not self._runner.options.noskips: |
|
2002 | 2044 | for test, msg in result.skipped: |
|
2003 |
|
|
|
2045 | formatted = 'Skipped %s: %s' % (test.name, msg) | |
|
2046 | if result.color: | |
|
2047 | formatted = pygments.highlight( | |
|
2048 | formatted, | |
|
2049 | TestRunnerLexer(), | |
|
2050 | formatters.Terminal256Formatter( | |
|
2051 | style=TestRunnerStyle)).strip("\n") | |
|
2052 | self.stream.writeln(formatted) | |
|
2004 | 2053 | for test, msg in result.failures: |
|
2005 |
|
|
|
2054 | formatted = 'Failed %s: %s' % (test.name, msg) | |
|
2055 | if result.color: | |
|
2056 | formatted = pygments.highlight( | |
|
2057 | formatted, | |
|
2058 | TestRunnerLexer(), | |
|
2059 | formatters.Terminal256Formatter( | |
|
2060 | style=TestRunnerStyle)).strip("\n") | |
|
2061 | self.stream.writeln(formatted) | |
|
2006 | 2062 | for test, msg in result.errors: |
|
2007 | 2063 | self.stream.writeln('Errored %s: %s' % (test.name, msg)) |
|
2008 | 2064 |
@@ -131,10 +131,9 b' test diff colorisation' | |||
|
131 | 131 | \x1b[38;5;34m+ bar*baz (glob)\x1b[39m (esc) |
|
132 | 132 | bar*bad (glob) |
|
133 | 133 | \x1b[38;5;124m- bar*baz (glob)\x1b[39m (esc) |
|
134 | ||
|
135 | ERROR: test-failure.t output changed | |
|
134 | \x1b[38;5;88mERROR: \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m output changed\x1b[39m (esc) | |
|
136 | 135 | ! |
|
137 | Failed test-failure.t: output changed | |
|
136 | \x1b[38;5;88mFailed \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m: output changed\x1b[39m (esc) | |
|
138 | 137 | # Ran 1 tests, 0 skipped, 1 failed. |
|
139 | 138 | python hash seed: * (glob) |
|
140 | 139 | [1] |
General Comments 0
You need to be logged in to leave comments.
Login now