def format_testcase_diff(diff):
"""Format a testcase output diff.
PARAMETERS
diff: the diff content
RETURNS
a list of pygments' Tokens
"""
def new_line_token():
"""Generate a new line token."""
return Token.Whitespace, '\n'
def indent_token():
"""Generate an indentation space token."""
return Token.Whitespace, ' ' * 4
tokens = []
new_line = True
# Because of logging prefixes, skip the first line to avoid
# misalignment.
tokens.append(new_line_token())
for ttype, value in pygments.lex(diff, DiffLexer()):
for subval in value.split('\n'):
if new_line:
tokens.append(indent_token())
new_line = not subval
if subval:
tokens.append((ttype, subval))
else:
tokens.append(new_line_token())
return tokens
评论列表
文章目录