def append_failure(self, report):
"""Append xml report with failed TC.
Args:
report(dict): Failure report
"""
self.class_logger.info("Appending XML report with fail.")
report['sections'] = [xml_unescape(section) for section in report['sections']] # pylint: disable=no-member
sec = dict(report['sections'])
self.fail_traceback = self.Junit.failure(message="Test failure") # pylint: disable=no-member
# Removing BASH escape symbols (decolorizing)
# longrepr = xml_unescape(re_sub(r"\x1b.*?m", "", report['longrepr']))
longrepr = xml_unescape(report['longrepr'])
# TODO: Change str to encode for unicode text
try:
self.fail_traceback.append(str(longrepr))
except UnicodeEncodeError as err:
self.fail_traceback.append(ud.normalize('NFKD', longrepr))
self.class_logger.warning("Unicode data in traceback: %s" % (err, ))
self.append(self.fail_traceback)
for name in ("out", "err"):
content = sec.get("Captured std{0}".format(name))
if content:
tag = getattr(self.Junit, "system-{0}".format(name))
self.append(tag(content))
self.failed += 1
评论列表
文章目录