Author: pekka.klarck
Date: Sun Apr 5 03:38:18 2009
New Revision: 1666
Modified:
trunk/src/robot/serializing/serializer.py
Log:
cleanup
Modified: trunk/src/robot/serializing/serializer.py
==============================================================================
--- trunk/src/robot/serializing/serializer.py (original)
+++ trunk/src/robot/serializing/serializer.py Sun Apr 5 03:38:18 2009
@@ -67,28 +67,28 @@
self._tag_stat_link(stat)
self._writer.end('td')
self._writer.element('td', str(stat.passed + stat.failed),
- {'class': 'col_stat'})
+ {'class': 'col_stat'})
self._writer.element('td', stat.passed, {'class': 'col_stat'})
self._writer.element('td', stat.failed, {'class': 'col_stat'})
self._writer.start('td', {'class': 'col_graph'})
self._writer.start('div', {'class': 'graph'})
- pass_title, fail_title, pass_width, fail_width =
self._get_percents(stat)
- self._writer.element('b', None, {'class': 'pass_bar',
- 'style': 'width: %s;' %
pass_width,
- 'title': pass_title})
- self._writer.element('b', None, {'class': 'fail_bar',
- 'style': 'width: %s;' %
fail_width,
- 'title': fail_title})
+ pass_attrs, fail_attrs = self._get_graph_attrs(stat)
+ self._writer.element('b', None, pass_attrs)
+ self._writer.element('b', None, fail_attrs)
self._writer.ends(['div', 'td', 'tr'])
- def _get_percents(self, stat):
- # See utils.percents_to_widths to understand why different title
and
+ def _get_graph_attrs(self, stat):
+ # See utils.percents_to_widths to understand why different percent
and
# width values are needed
percents = utils.calc_percents(stat.passed, stat.failed)
- pass_title, fail_title = [ '%.1f%%' % item for item in percents ]
- pass_width, fail_width = [ '%.2f%%' % item for item in
- utils.percents_to_widths(*percents) ]
- return pass_title, fail_title, pass_width, fail_width
+ widths = utils.percents_to_widths(*percents)
+ pass_attrs = {'class': 'pass_bar',
+ 'title': '%.1f%%' % percents[0],
+ 'style': 'width: %.2f%%;' % widths[0]}
+ fail_attrs = {'class': 'fail_bar',
+ 'title': '%.1f%%' % percents[1],
+ 'style': 'width: %.2f%%;' % widths[1]}
+ return pass_attrs, fail_attrs
def _statistics_table(self, statistics, title):
self._writer.start('table', {'class': 'statistics'})
@@ -112,16 +112,13 @@
self._writer.start('td', {'class': 'col_graph'})
self._writer.start('div', {'class': 'graph'})
self._writer.element('b', None, {'class': 'no_tags_bar',
- 'style': 'width: 100%;'})
+ 'style': 'width: 100%;'})
self._writer.ends(['div', 'td', 'tr'])
def _stat_name(self, stat):
self._writer.start('div', {'class': 'stat_name'}, newline=False)
elem = self._get_element_name(stat)
- if elem == 'a':
- attrs = self._get_link_attributes(stat)
- else:
- attrs = {}
+ attrs = elem == 'a' and self._get_link_attributes(stat) or {}
doc = self._get_doc_attribute(stat)
if doc:
attrs['title'] = doc
@@ -143,16 +140,15 @@
raise NotImplementedError
def _write_criticality(self, stat):
- if stat.type == 'tag' and stat.critical is True:
+ if stat.type == 'tag' and stat.critical:
self._writer.content(' (critical)')
- if stat.type == 'tag' and stat.non_critical is True:
+ if stat.type == 'tag' and stat.non_critical:
self._writer.content(' (non-critical)')
def _tag_stat_link(self, stat):
self._writer.start('div', {'class': 'tag_links'})
- for item in stat.links:
+ for link, title in stat.links:
self._writer.start('span', newline=False)
- link, title = item
self._writer.content('[')
self._writer.element('a', title, {'href': link}, newline=False)
self._writer.content(']')
@@ -171,7 +167,7 @@
def _get_link_attributes(self, stat):
target = '%s_%s' % (stat.type, stat.get_link(self._split_level))
- return { 'href': '#' + target,
+ return { 'href': '#' + target,
'onclick': "set_element_visible('%s')" % target }
@@ -226,8 +222,7 @@
def message(self, msg):
self._writer.start('tr')
timestamp = msg.timestamp.replace(' ', ' ')
- self._writer.element('td', timestamp, {'class': 'time'},
- escape=False)
+ self._writer.element('td', timestamp, {'class': 'time'},
escape=False)
level_class = '%s level' % (msg.level.lower())
self._writer.element('td', msg.level, {'class': level_class})
self._writer.element('td', msg.message, {'class': 'msg'})
@@ -252,10 +247,9 @@
self._writer.start('table', {'class': 'suite', 'id': suite.id})
self._write_suite_or_test_name(suite, 'suite')
self._writer.starts(['tr', 'td'])
- self._writer.start('div',
- {'class': 'indent',
- 'style':
self._get_display_style(suite),
- 'id': '%s_children' % suite.id})
+ self._writer.start('div', {'class': 'indent',
+ 'style': self._get_display_style(suite),
+ 'id': '%s_children' % suite.id})
self._write_suite_metadata(suite)
self._suite_level += 1
@@ -268,10 +262,9 @@
self._writer.start('table', {'class': 'test', 'id': test.id})
self._write_suite_or_test_name(test, 'test')
self._writer.starts(['tr', 'td'])
- self._writer.start('div',
- {'class': 'indent',
- 'style': self._get_display_style(test),
- 'id': '%s_children' % test.id})
+ self._writer.start('div', {'class': 'indent',
+ 'style': self._get_display_style(test),
+ 'id': '%s_children' % test.id})
self._write_test_metadata(test)
def end_test(self, test):
@@ -284,8 +277,8 @@
self._writer.start('tr', {'id': kw.id})
self._writer.start('td', newline=True)
self._writer.start('div', {'class': 'indent',
- 'style':
self._get_display_style(kw),
- 'id': '%s_children' % kw.id})
+ 'style': self._get_display_style(kw),
+ 'id': '%s_children' % kw.id})
self._write_keyword_info(kw)
def end_keyword(self, kw):
@@ -296,9 +289,10 @@
self._writer.start('tr')
timestamp = msg.timestamp.split()[1] # don't log date
self._writer.element('td', timestamp, {'class': 'time'})
- level_class = '%s level' % (msg.level.lower())
- self._writer.element('td', msg.level, {'class': level_class})
- self._writer.element('td', msg.message, {'class': 'msg'},
escape=not msg.html)
+ self._writer.element('td', msg.level,
+ {'class': '%s level' % msg.level.lower()})
+ self._writer.element('td', msg.message, {'class': 'msg'},
+ escape=not msg.html)
self._writer.ends(['tr', 'table'])
def _write_suite_or_test_name(self, item, type_):
@@ -306,12 +300,11 @@
self._write_expand_all(item)
self._write_folding_button(item)
label = type_ == 'suite' and 'TEST SUITE: '
or 'TEST CASE: '
- self._writer.element('span', label,
- {'class': item.status.lower()},
escape=False)
+ self._writer.element('span', label, {'class': item.status.lower()},
+ escape=False)
name = item.get_long_name(split_level=self._split_level)
- self._writer.element('a', item.name,
- {'name': '%s_%s' % (type_, name),
- 'class': 'name', 'title': name})
+ self._writer.element('a', item.name, {'name': '%s_%s' % (type_,
name),
+ 'class': 'name', 'title':
name})
self._writer.ends(['td', 'tr'])
def _write_expand_all(self, item):
@@ -334,10 +327,10 @@
elif kw.type == 'parallel':
self._writer.element('span', 'PARALLEL:', status)
else:
- kw_type = kw.type in ['setup','teardown'] and kw.type.upper()
or 'KEYWORD'
- self._writer.element('span', kw_type+': ', status)
+ kw_type = kw.type in ['setup','teardown'] and kw.type
or 'keyword'
+ self._writer.element('span', kw_type.upper()+': ', status)
self._writer.element('span', kw.name+' ', {'class': 'name'})
- self._writer.element('span', u', '.join(kw.args),
{'class': 'arg'})
+ self._writer.element('span', ', '.join(kw.args),
{'class': 'arg'})
self._writer.ends(['td', 'tr'])
def _write_keyword_info(self, kw):
@@ -369,12 +362,13 @@
def _get_display_style(self, item):
style = self._is_element_open(item) and 'block' or 'none'
- return 'display: %s;' % (style)
+ return 'display: %s;' % style
def _write_suite_metadata(self, suite):
self._start_suite_or_test_metadata(suite)
for name, value in suite.get_metadata(html=True):
- self._write_metadata_row(name, value, escape=False,
write_empty=True)
+ self._write_metadata_row(name, value, escape=False,
+ write_empty=True)
self._write_source(suite.source)
self._write_times(suite)
self._write_metadata_row('Overall Status', suite.status,
@@ -416,7 +410,8 @@
if value or write_empty:
self._writer.start('tr', newline=False)
self._writer.element('th', name+':', escape=False,
newline=False)
- self._writer.element('td', value, attrs, escape=escape,
newline=False)
+ self._writer.element('td', value, attrs, escape=escape,
+ newline=False)
self._writer.end('tr')
def _write_split_suite_details_link(self):
@@ -471,15 +466,12 @@
self._writer.starts(['tr', 'td'])
self._write_folding_button(suite)
self._writer.element('span', 'TEST SUITE: ',
- {'class': suite.status.lower()},
- escape=False)
+ {'class': suite.status.lower()}, escape=False)
link = '%s#suite_%s' % (self._namegen.get_name(), suite.name)
-
self._writer.element('a', suite.name,
- {'name': 'suite_%s' %
(suite.mediumname),
- 'href': link,
- 'class': 'splitname',
- 'title': suite.longname})
+ {'name': 'suite_%s' % (suite.mediumname),
+ 'href': link, 'class': 'splitname',
+ 'title': suite.longname})
self._writer.ends(['td', 'tr'])
def _write_split_suite_details_link(self):
@@ -497,12 +489,12 @@
self._writer.element('th', 'Name', {'class': 'col_name'})
self._writer.element('th', 'Documentation', {'class': 'col_doc'})
self._writer.element('th', tag_column_name,
- {'class': 'col_tags'}, escape=False)
+ {'class': 'col_tags'}, escape=False)
self._writer.element('th', 'Crit.', {'class': 'col_crit'})
self._writer.element('th', 'Status', {'class': 'col_status'})
self._writer.element('th', 'Message', {'class': 'col_msg'})
self._writer.element('th', 'Start / Elapsed',
- {'class': 'col_times'}, escape=False)
+ {'class': 'col_times'}, escape=False)
self._writer.end('tr')
def _test_row(self, test):
@@ -517,15 +509,15 @@
self._writer.start('tr', {'class': '%s_row' % type_})
self._writer.start('td', {'class': 'col_name'}, newline=False)
elem, attrs = self._get_name_params(item, type_)
- self._writer.element(elem, item.mediumname, attrs, newline=False)
+ self._writer.element(elem, item.mediumname, attrs, newline=False)
self._writer.end('td')
self._writer.element('td', item.htmldoc, {'class': 'col_doc'},
- escape=False)
+ escape=False)
def _get_name_params(self, item, type_):
attrs = { 'id' : '%s_%s' % (type_, item.longname),
'title' : item.longname }
- if item.linkpath is not None:
+ if item.linkpath:
elem = 'a'
attrs['href'] = '%s#%s_%s' % (item.linkpath, type_,
item.linkname)
else:
@@ -536,10 +528,10 @@
self._writer.element('td', ', '.join(test.tags),
{'class': 'col_tags'})
self._writer.element('td', test.critical, {'class': 'col_crit'})
self._writer.element('td', test.status,
- {'class': 'col_status %s' %
test.status.lower()})
+ {'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):
@@ -562,11 +554,11 @@
class ReportSuiteSerializer(_ReportTableHelper):
- end_test = start_keyword = end_keyword = message = lambda self, arg :
None
+ end_test = start_keyword = end_keyword = message = lambda self, arg:
None
def __init__(self, output, logpath=None):
self._writer = utils.HtmlWriter(output)
- self._loglink = logpath is not None and \
+ self._loglink = logpath and \
utils.get_link_path(logpath, output.name) or None
self._suite_level = 0
@@ -602,18 +594,17 @@
def _end_suite_row(self, suite):
self._writer.start('td', {'class': 'col_tags'})
for name, value in suite.get_metadata(html=True):
- self._writer.element('span', '%s: ' % name,
- {'class': 'meta_name'})
+ self._writer.element('span', '%s: ' % name,
{'class': 'meta_name'})
self._writer.content(value, escape=False)
self._writer.start_and_end('br')
self._writer.end('td')
self._writer.element('td', 'N/A', {'class': 'col_crit
not_available'})
self._writer.element('td', suite.status,
- {'class': 'col_status %s' %
suite.status.lower()})
+ {'class': 'col_status %s' %
suite.status.lower()})
self._writer.element('td', suite.get_full_message(html=True),
- {'class': 'col_msg'}, escape=False)
+ {'class': 'col_msg'}, escape=False)
self._writer.element('td', self._get_times(suite),
- {'class': 'col_times'}, escape=False)
+ {'class': 'col_times'}, escape=False)
self._writer.end('tr')
@@ -649,12 +640,12 @@
self._writer = utils.HtmlWriter(output)
def start_tag_stats(self, stats):
- if stats.stats != {}:
+ if stats.stats:
self._writer.element('h2', 'Test Details by Tag')
self._start_table('tests_by_tag', 'Tags')
def end_tag_stats(self, stats):
- if stats.stats != {}:
+ if stats.stats:
self._writer.end('table')
def stat(self, stat):
@@ -666,7 +657,7 @@
self._writer.start('tr', {'class': 'tag_row'})
self._writer.start('td', {'class': 'col_name'}, newline=False)
self._writer.element('a', None, {'name': 'tag_%s' % stat.name},
- newline=False)
+ newline=False)
self._writer.content(stat.name)
self._writer.end('td')
doc = stat.doc is not None and utils.html_escape(stat.doc, True)
or ''
@@ -675,18 +666,18 @@
self._writer.element('td', self._get_crit(stat),
{'class': 'col_crit'})
status = stat.failed == 0 and 'PASS' or 'FAIL'
self._writer.element('td', status,
- {'class': 'col_status %s' %
status.lower()})
+ {'class': 'col_status %s' % status.lower()})
self._writer.element('td', self._get_msg(stat.passed, stat.failed),
- {'class': 'col_msg'}, escape=False)
+ {'class': 'col_msg'}, escape=False)
self._writer.element('td', self._get_elapsed(stat.tests),
- {'class': 'col_times'})
+ {'class': 'col_times'})
self._writer.end('tr')
def _get_msg(self, passed, failed):
total = passed + failed
class_ = failed > 0 and ' class="fail"' or ''
- return '%d test%s, %d passed, <span%s>%d failed</span>' % (total,
- utils.plural_or_not(total), passed, class_, failed)
+ return '%d test%s, %d passed, <span%s>%d failed</span>' \
+ % (total, utils.plural_or_not(total), passed, class_,
failed)
def _get_elapsed(self, tests):
millis = sum([test.elapsedtime for test in tests])