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* &lt;esc&gt; 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']),

Reply via email to