21 from .loggerhelper
import IsLogged
26 def __init__(self, path, log_level='TRACE', rpa=False, generator='Robot'):
34 return NullMarkupWriter()
36 writer = XmlWriter(path, write_empty=
False)
37 except EnvironmentError
as err:
38 raise DataError(
"Opening output file '%s' failed: %s" %
42 'rpa':
'true' if rpa
else 'false'})
50 self.
_writer_writer.end(
'robot')
65 attrs = {
'timestamp': msg.timestamp
or 'N/A',
'level': msg.level}
68 self.
_writer_writer.element(
'msg', msg.message, attrs)
71 attrs = {
'name': kw.kwname,
'library': kw.libname}
73 attrs[
'type'] = kw.type
76 self.
_writer_writer.element(
'doc', kw.doc)
77 self.
_write_list_write_list(
'arguments',
'arg', [
unic(a)
for a
in kw.args])
78 self.
_write_list_write_list(
'assign',
'var', kw.assign)
82 self.
_writer_writer.element(
'timeout', attrs={
'value':
unic(kw.timeout)})
87 self.
_writer_writer.
start(
'test', {
'id': test.id,
'name': test.name})
90 self.
_writer_writer.element(
'doc', test.doc)
91 self.
_write_list_write_list(
'tags',
'tag', test.tags)
93 self.
_writer_writer.element(
'timeout', attrs={
'value':
unic(test.timeout)})
94 self.
_write_status_write_status(test, {
'critical':
'yes' if test.critical
else 'no'})
98 attrs = {
'id': suite.id,
'name': suite.name,
'source': suite.source}
102 self.
_writer_writer.element(
'doc', suite.doc)
106 self.
_writer_writer.end(
'suite')
110 for name, value
in metadata.items():
111 self.
_writer_writer.element(
'item', value, {
'name': name})
112 self.
_writer_writer.end(
'metadata')
118 self.
_writer_writer.end(
'statistics')
124 self.
_writer_writer.end(
'total')
136 self.
_writer_writer.end(
'suite')
139 self.
_writer_writer.element(
'stat', stat.name,
140 stat.get_attributes(values_as_strings=
True))
146 self.
_writer_writer.end(
'errors')
152 self.
_writer_writer.element(item_tag, item)
153 self.
_writer_writer.end(container_tag)
156 attrs = {
'status': item.status,
'starttime': item.starttime
or 'N/A',
157 'endtime': item.endtime
or 'N/A'}
158 if not (item.starttime
and item.endtime):
159 attrs[
'elapsedtime'] = str(item.elapsedtime)
161 attrs.update(extra_attrs)
162 self.
_writer_writer.element(
'status', item.message, attrs)
Used when variable does not exist.
def _write_list(self, container_tag, item_tag, items)
def end_tag_statistics(self, tag_stats)
def end_errors(self, errors=None)
def __init__(self, path, log_level='TRACE', rpa=False, generator='Robot')
def _write_status(self, item, extra_attrs=None)
def start_keyword(self, kw)
Called when keyword starts.
def _write_metadata(self, metadata)
def start_test(self, test)
Called when test starts.
def start_suite_statistics(self, tag_stats)
def start_suite(self, suite)
Called when suite starts.
def end_statistics(self, stats)
def log_message(self, msg)
def start_errors(self, errors=None)
def _write_message(self, msg)
def end_keyword(self, kw)
Called when keyword ends.
def visit_stat(self, stat)
def end_test(self, test)
Called when test ends.
def end_suite(self, suite)
Called when suite ends.
def set_log_level(self, level)
def end_total_statistics(self, total_stats)
def start_statistics(self, stats)
def end_suite_statistics(self, tag_stats)
def start_total_statistics(self, total_stats)
def start_tag_statistics(self, tag_stats)
def _get_writer(self, path, rpa, generator)
Abstract class to conveniently travel :class:~robot.result.executionresult.Result objects.
def end_errors(self, errors)
def start_errors(self, errors)
def get_timestamp(daysep='', daytimesep=' ', timesep=':', millissep='.')
def get_full_version(program=None, naked=False)