Revision: 15324ffa2075
Author: Robot Framework Developers <[email protected]>
Date: Tue Jun 21 09:45:45 2011
Log: prune out unused integers from report
http://code.google.com/p/robotframework/source/detail?r=15324ffa2075
Modified:
/src/robot/result/jsondatamodel.py
/utest/result/test_js_serializer.py
=======================================
--- /src/robot/result/jsondatamodel.py Tue Jun 21 03:50:10 2011
+++ /src/robot/result/jsondatamodel.py Tue Jun 21 09:45:45 2011
@@ -49,7 +49,7 @@
def remove_keywords(self):
self._robot_data['suite'] =
self._remove_keywords_from(self._robot_data['suite'])
- self._prune_unused_texts()
+ self._prune_unused_indices()
def _remove_keywords_from(self, data):
if not isinstance(data, list):
@@ -64,18 +64,19 @@
return isinstance(item, list) and item and item[0] > 0 \
and self._robot_data['strings'][item[0]] in
['*kw', '*setup', '*forloop', '*foritem']
- def _prune_unused_texts(self):
- used = self._collect_used_text_indices(self._robot_data['suite'],
set())
+ def _prune_unused_indices(self):
+ used = self._collect_used_indices(self._robot_data['suite'], set())
self._robot_data['strings'] = [text if index in used else '' for
index, text in enumerate(self._robot_data['strings'])]
-
- def _collect_used_text_indices(self, data, result):
+ self._robot_data['integers'] = [number if (-1 -index) in used else
0 for index, number in enumerate(self._robot_data['integers'])]
+
+ def _collect_used_indices(self, data, result):
for item in data:
if isinstance(item, (int, long)):
result.add(item)
elif isinstance(item, list):
- self._collect_used_text_indices(item, result)
+ self._collect_used_indices(item, result)
elif isinstance(item, dict):
- self._collect_used_text_indices(item.values(), result)
+ self._collect_used_indices(item.values(), result)
return result
=======================================
--- /utest/result/test_js_serializer.py Tue Jun 21 03:49:35 2011
+++ /utest/result/test_js_serializer.py Tue Jun 21 09:45:45 2011
@@ -33,7 +33,7 @@
<doc>*html* <esc> http://x.y http://x.y/z.jpg</doc>
<arguments><arg>a1</arg><arg>a2</arg></arguments>
<msg timestamp="20110601 12:01:51.353" level="WARN">simple</msg>
- <status status="PASS" endtime="20110601 12:01:51.353"
starttime="20110601 12:01:51.353"></status>
+ <status status="PASS" endtime="20110601 12:01:51.353"
starttime="20110601 12:01:51.376"></status>
</kw>
<tags><tag>t1</tag><tag>t2</tag></tags>
<status status="PASS" endtime="20110601 12:01:51.354" critical="yes"
starttime="20110601 12:01:51.353"></status>
@@ -242,10 +242,15 @@
self._test_remove_keywords(self._get_data_model(test_xml))
def _test_remove_keywords(self, data_model):
- strings_before = ''.join(data_model._robot_data['strings'])
+ strings_before = self._list_size(data_model._robot_data['strings'])
+ integers_before =
self._list_size(data_model._robot_data['integers'])
data_model.remove_keywords()
self.assert_model_does_not_contain(data_model,
['kw', 'setup', 'forloop', 'foritem'])
- assert_true(len(strings_before) >
len(''.join(data_model._robot_data['strings'])))
+ assert_true(strings_before >
self._list_size(data_model._robot_data['strings']))
+ assert_true(integers_before >
self._list_size(data_model._robot_data['integers']))
+
+ def _list_size(self, array):
+ return len(''.join([str(val) for val in array]))
def test_suite_xml_parsing(self):
# Tests parsing the whole suite structure
@@ -255,7 +260,7 @@
plain_suite=['*suite', '*/tmp/verysimple.txt', '*Verysimple', doc,
['*test', '*Test', '*', '*Y', doc,
['*kw', '*Keyword.Example', '*1 second',
doc,
- '*a1, a2', [0, '*W', '*simple'], ['*P',
0, 0]],
+ '*a1, a2', [0, '*W', '*simple'], ['*P',
23, -23]],
['*t1', '*t2'], ['*P', 0, 1]],
['*P', -24, 25], [1, 1, 1, 1]])
assert_equals(self._context.link_to([0, 'W', 'simple']),