28 self.
resultresult.set_execution_mode(merged)
29 merged.suite.visit(self)
30 self.
resultresult.errors.add(merged.errors)
37 self.
currentcurrent.suites.append(suite)
44 suite = self.
_find_find(parent.suites, name)
45 suite.starttime = suite.endtime =
None
49 root = self.
resultresult.suite
51 raise DataError(
"Cannot merge outputs containing different root "
52 "suites. Original suite is '%s' and merged is "
53 "'%s'." % (root.name, name))
67 old = self.
_find_find(self.
currentcurrent.tests, test.name)
70 self.
currentcurrent.tests.append(test)
73 index = self.
currentcurrent.tests.index(old)
74 self.
currentcurrent.tests[index] = test
77 prefix = (
'*HTML* %s added from merged output.'
78 % (
'Test' if test
else 'Suite'))
81 return ''.join([prefix,
'<hr>', self.
_html_escape_html_escape(item.message)])
84 if message.startswith(
'*HTML*'):
85 return message[6:].lstrip()
91 '*HTML* Re-executed test has been merged.<hr>',
92 'New status: %s<br>' % self.
_format_status_format_status(new.status),
93 'New message: %s<hr>' % self.
_html_escape_html_escape(new.message),
94 'Old status: %s<br>' % self.
_format_status_format_status(old.status),
95 'Old message: %s' % self.
_html_escape_html_escape(old.message)
99 return '<span class="%s">%s</span>' % (status.lower(), status)
Used when variable does not exist.
Interface to ease traversing through a test suite structure.
def _find_suite(self, parent, name)
def _create_merge_message(self, new, old)
def end_suite(self, suite)
Called when suite ends.
def start_suite(self, suite)
Called when suite starts.
def _html_escape(self, message)
def _create_add_message(self, item, test=True)
def __init__(self, result)
def _format_status(self, status)
def _find(self, items, name)
def visit_test(self, test)
Implements traversing through the test and its keywords.
def _find_root(self, name)
def html_escape(text, linkify=True)