Author: pekka.klarck
Date: Sun Apr 5 08:08:10 2009
New Revision: 1675
Modified:
trunk/src/robot/serializing/logserializers.py
trunk/src/robot/serializing/reportserializers.py
trunk/src/robot/serializing/testoutput.py
Log:
Renamed serializer classes slightly and did some more cleanups
Modified: trunk/src/robot/serializing/logserializers.py
==============================================================================
--- trunk/src/robot/serializing/logserializers.py (original)
+++ trunk/src/robot/serializing/logserializers.py Sun Apr 5 08:08:10 2009
@@ -18,31 +18,7 @@
from robot import utils
-class LogErrorsSerializer:
-
- def __init__(self, output):
- self._writer = utils.HtmlWriter(output)
-
- def start_errors(self, errors):
- if errors.messages:
- self._writer.element('h2', 'Test Execution Errors')
- self._writer.start('table', {'class': 'errors'})
-
- def message(self, msg):
- self._writer.start('tr')
- self._writer.element('td', msg.timestamp.replace(' ', ' '),
- {'class': 'time'}, escape=False)
- self._writer.element('td', msg.level,
- {'class': '%s level' % msg.level.lower()})
- self._writer.element('td', msg.message, {'class': 'msg'})
- self._writer.end('tr')
-
- def end_errors(self, errors):
- if errors.messages:
- self._writer.end('table')
-
-
-class LogSuiteSerializer:
+class LogSerializer:
def __init__(self, output, split_level=-1):
self._writer = utils.HtmlWriter(output)
@@ -118,8 +94,8 @@
def _write_expand_all(self, item):
# Overridden by testdoc.py tool.
- attrs = { 'href': "javascript:expand_all_children('%s')" % item.id,
- 'class': 'expand' }
+ attrs = {'href': "javascript:expand_all_children('%s')" % item.id,
+ 'class': 'expand'}
self._writer.element('a', 'Expand All', attrs)
def _write_keyword_name(self, kw):
@@ -157,8 +133,8 @@
self._write_button(fold, 'block', item.id+'_foldlink', onclk)
def _write_button(self, label, display, id_, onclick):
- attrs = { 'style': 'display: %s;' %
display, 'class': 'foldingbutton',
- 'id': id_, 'onclick': onclick }
+ attrs = {'style': 'display: %s;' %
display, 'class': 'foldingbutton',
+ 'id': id_, 'onclick': onclick}
self._writer.element('div', label, attrs)
def _is_element_open(self, item):
@@ -227,47 +203,47 @@
pass
-class SplitLogSuiteSerializer(LogSuiteSerializer):
+class SplitLogSerializer(LogSerializer):
def __init__(self, output, split_level):
- LogSuiteSerializer.__init__(self, output, split_level)
+ LogSerializer.__init__(self, output, split_level)
self._namegen =
utils.FileNameGenerator(os.path.basename(output.name))
def start_suite(self, suite):
if self._suite_level <= self._split_level:
- LogSuiteSerializer.start_suite(self, suite)
+ LogSerializer.start_suite(self, suite)
else:
self._suite_level += 1
def end_suite(self, suite):
if self._suite_level <= self._split_level + 1:
- LogSuiteSerializer.end_suite(self, suite)
+ LogSerializer.end_suite(self, suite)
else:
self._suite_level -= 1
def start_test(self, test):
if self._suite_level <= self._split_level:
- LogSuiteSerializer.start_test(self, test)
+ LogSerializer.start_test(self, test)
def end_test(self, test):
if self._suite_level <= self._split_level:
- LogSuiteSerializer.end_test(self, test)
+ LogSerializer.end_test(self, test)
def start_keyword(self, kw):
if self._suite_level <= self._split_level:
- LogSuiteSerializer.start_keyword(self, kw)
+ LogSerializer.start_keyword(self, kw)
def end_keyword(self, kw):
if self._suite_level <= self._split_level:
- LogSuiteSerializer.end_keyword(self, kw)
+ LogSerializer.end_keyword(self, kw)
def message(self, msg):
if self._suite_level <= self._split_level:
- LogSuiteSerializer.message(self, msg)
+ LogSerializer.message(self, msg)
def _write_suite_or_test_name(self, item, type_):
if type_ == 'test' or self._suite_level < self._split_level:
- LogSuiteSerializer._write_suite_or_test_name(self, item, type_)
+ LogSerializer._write_suite_or_test_name(self, item, type_)
elif self._suite_level == self._split_level:
self._write_split_suite_name(item)
@@ -288,3 +264,27 @@
name = self._namegen.get_prev()
link = '<a href="%s">%s</a>' % (name, name)
self._write_metadata_row('Details', link, escape=False)
+
+
+class ErrorSerializer:
+
+ def __init__(self, output):
+ self._writer = utils.HtmlWriter(output)
+
+ def start_errors(self, errors):
+ if errors.messages:
+ self._writer.element('h2', 'Test Execution Errors')
+ self._writer.start('table', {'class': 'errors'})
+
+ def message(self, msg):
+ self._writer.start('tr')
+ self._writer.element('td', msg.timestamp.replace(' ', ' '),
+ {'class': 'time'}, escape=False)
+ self._writer.element('td', msg.level,
+ {'class': '%s level' % msg.level.lower()})
+ self._writer.element('td', msg.message, {'class': 'msg'})
+ self._writer.end('tr')
+
+ def end_errors(self, errors):
+ if errors.messages:
+ self._writer.end('table')
Modified: trunk/src/robot/serializing/reportserializers.py
==============================================================================
--- trunk/src/robot/serializing/reportserializers.py (original)
+++ trunk/src/robot/serializing/reportserializers.py Sun Apr 5 08:08:10
2009
@@ -16,7 +16,7 @@
from robot import utils
-class _ReportTableHelper:
+class _TableHelper:
def _start_table(self, name, tag_column_name):
self._writer.start('table', {'class': name})
@@ -50,8 +50,7 @@
escape=False)
def _get_name_params(self, item, type_):
- attrs = { 'id' : '%s_%s' % (type_, item.longname),
- 'title' : item.longname }
+ attrs = {'id': '%s_%s' % (type_,item.longname), 'title':
item.longname}
if item.linkpath:
elem = 'a'
attrs['href'] = '%s#%s_%s' % (item.linkpath, type_,
item.linkname)
@@ -66,7 +65,7 @@
{'class': 'col_status %s' %
test.status.lower()})
self._writer.element('td', test.message, {'class': 'col_msg'})
self._writer.element('td', self._get_times(test),
- {'class': 'col_times'}, escape=False )
+ {'class': 'col_times'}, escape=False)
self._writer.end('tr')
def _get_times(self, item):
@@ -87,7 +86,7 @@
return '%s<br />%s' % (start, elapsed)
-class ReportSuiteSerializer(_ReportTableHelper):
+class ReportSerializer(_TableHelper):
end_test = start_keyword = end_keyword = message = lambda self, arg:
None
@@ -122,7 +121,7 @@
def _set_test_link(self, test):
# Separate _set_test/suite_link methods are needed to allow
overriding
- # them separately in SplitReportSuiteSerializer
+ # them separately in SplitReportSerializer
test.linkpath = self._loglink
test.linkname = test.longname
@@ -143,16 +142,16 @@
self._writer.end('tr')
-class SplitReportSuiteSerializer(ReportSuiteSerializer):
+class SplitReportSerializer(ReportSerializer):
def __init__(self, output, logpath, split_level):
- ReportSuiteSerializer.__init__(self, output, logpath)
+ ReportSerializer.__init__(self, output, logpath)
self._split_level = split_level
self._namegen = utils.FileNameGenerator(self._loglink)
def _set_suite_link(self, suite):
if self._suite_level <= self._split_level:
- ReportSuiteSerializer._set_suite_link(self, suite)
+ ReportSerializer._set_suite_link(self, suite)
else:
if self._suite_level == self._split_level + 1:
self._split_loglink = self._namegen.get_name()
@@ -160,7 +159,7 @@
def _set_test_link(self, test):
if self._suite_level <= self._split_level:
- ReportSuiteSerializer._set_test_link(self, test)
+ ReportSerializer._set_test_link(self, test)
else:
self._set_split_link(test)
@@ -169,7 +168,7 @@
item.linkname = item.get_long_name(split_level=self._split_level)
-class ReportTagStatSerializer(_ReportTableHelper):
+class TagDetailsSerializer(_TableHelper):
def __init__(self, output):
self._writer = utils.HtmlWriter(output)
Modified: trunk/src/robot/serializing/testoutput.py
==============================================================================
--- trunk/src/robot/serializing/testoutput.py (original)
+++ trunk/src/robot/serializing/testoutput.py Sun Apr 5 08:08:10 2009
@@ -26,9 +26,9 @@
from outputserializers import OutputSerializer
from statserializers import LogStatSerializer, SplitLogStatSerializer, \
ReportStatSerializer, SummaryStatSerializer
-from logserializers import LogSuiteSerializer, SplitLogSuiteSerializer, \
- LogErrorsSerializer
-from reportserializers import ReportSuiteSerializer,
SplitReportSuiteSerializer, ReportTagStatSerializer
+from logserializers import LogSerializer, SplitLogSerializer,
ErrorSerializer
+from reportserializers import ReportSerializer, SplitReportSerializer, \
+ TagDetailsSerializer
class RobotTestOutput:
@@ -66,9 +66,9 @@
def serialize_summary(self, path, title=None):
outfile = self._get_outfile(path, 'summary')
- if outfile is None:
+ if not outfile:
return
- if title is None:
+ if not title:
title = get_title('Summary', self.suite.name)
self._use_template(outfile, templates.REPORT, title)
self.statistics.serialize(SummaryStatSerializer(outfile))
@@ -78,28 +78,28 @@
def serialize_report(self, path, title=None, logpath=None, split=-1):
outfile = self._get_outfile(path, 'report')
- if outfile is None:
+ if not outfile:
return
- if title is None:
+ if not title:
title = get_title('Report', self.suite.name)
if logpath == 'NONE':
logpath = None
self._use_template(outfile, templates.REPORT, title)
self.statistics.serialize(ReportStatSerializer(outfile))
- if split > 0 and logpath is not None:
- self.suite.serialize(SplitReportSuiteSerializer(outfile,
logpath, split))
+ if split > 0 and logpath:
+ self.suite.serialize(SplitReportSerializer(outfile, logpath,
split))
else:
- self.suite.serialize(ReportSuiteSerializer(outfile, logpath))
- self.statistics.tags.serialize(ReportTagStatSerializer(outfile))
+ self.suite.serialize(ReportSerializer(outfile, logpath))
+ self.statistics.tags.serialize(TagDetailsSerializer(outfile))
outfile.write('</body>\n</html>\n')
outfile.close()
LOGGER.output_file('Report', path)
def serialize_log(self, path, title=None, split=-1):
outfile = self._get_outfile(path, 'log')
- if outfile is None:
+ if not outfile:
return
- if title is None:
+ if not title:
title = get_title('Log', self.suite.name)
self._use_template(outfile, templates.LOG, title)
if split > 0:
@@ -112,13 +112,13 @@
def _serialize_log(self, outfile):
self.statistics.serialize(LogStatSerializer(outfile))
- self.exec_errors.serialize(LogErrorsSerializer(outfile))
- self.suite.serialize(LogSuiteSerializer(outfile))
+ self.exec_errors.serialize(ErrorSerializer(outfile))
+ self.suite.serialize(LogSerializer(outfile))
def _serialize_split_log(self, outfile, level):
self.statistics.serialize(SplitLogStatSerializer(outfile, level))
- self.exec_errors.serialize(LogErrorsSerializer(outfile))
- self.suite.serialize(SplitLogSuiteSerializer(outfile, level))
+ self.exec_errors.serialize(ErrorSerializer(outfile))
+ self.suite.serialize(SplitLogSerializer(outfile, level))
self._create_split_sub_logs(self.suite, level)
def _create_split_sub_logs(self, suite, level):
@@ -166,11 +166,11 @@
def _create_split_sub_log(self, suite, split_level):
outfile = self._get_outfile(self._namegen.get_name(), 'log')
- if outfile is None:
+ if not outfile:
return
self._use_template(outfile, templates.LOG, get_title('Log',
suite.name))
Statistics(suite).serialize(LogStatSerializer(outfile,
split_level))
- suite.serialize(LogSuiteSerializer(outfile, split_level))
+ suite.serialize(LogSerializer(outfile, split_level))
outfile.write('</body>\n</html>\n')
outfile.close()
@@ -203,5 +203,5 @@
def _serialize_split_log(self, outfile, level):
self.statistics.serialize(SplitLogStatSerializer(outfile, level))
- self.exec_errors.serialize(LogErrorsSerializer(outfile))
- self._outsuite.serialize(SplitLogSuiteSerializer(outfile, level))
+ self.exec_errors.serialize(ErrorSerializer(outfile))
+ self._outsuite.serialize(SplitLogSerializer(outfile, level))