Revision: 99498a05e929
Author:   Mikko Korpela <[email protected]>
Date:     Tue Jun 21 13:22:00 2011
Log:      fix metadata key strings pruning
http://code.google.com/p/robotframework/source/detail?r=99498a05e929

Modified:
 /src/robot/result/jsondatamodel.py
 /utest/result/test_js_serializer.py

=======================================
--- /src/robot/result/jsondatamodel.py  Tue Jun 21 12:33:07 2011
+++ /src/robot/result/jsondatamodel.py  Tue Jun 21 13:22:00 2011
@@ -80,6 +80,7 @@
                 self._collect_used_indices(item, result)
             elif isinstance(item, dict):
                 self._collect_used_indices(item.values(), result)
+                self._collect_used_indices(item.keys(), result)
         return result


=======================================
--- /utest/result/test_js_serializer.py Tue Jun 21 13:12:45 2011
+++ /utest/result/test_js_serializer.py Tue Jun 21 13:22:00 2011
@@ -242,13 +242,16 @@
'<tags></tags><status status="PASS" endtime="20110601 12:01:51.354" critical="yes" starttime="20110601 12:01:51.353"></status></test>'
         self._test_remove_keywords(self._get_data_model(test_xml))

-    def _test_remove_keywords(self, data_model):
+ def _test_remove_keywords(self, data_model, should_contain_strings=None):
         strings_before = self._list_size(data_model._robot_data['strings'])
integers_before = self._list_size(data_model._robot_data['integers'])
         data_model_json_before = StringIO.StringIO()
         data_model.write_to(data_model_json_before)
         data_model.remove_keywords()
self.assert_model_does_not_contain(data_model, ['kw', 'setup', 'forloop', 'foritem'])
+        if should_contain_strings:
+            for string in should_contain_strings:
+ assert_true(string in data_model._robot_data['strings'], msg='string "%s" not in strings' % string)
         data_model_json_after = StringIO.StringIO()
         data_model.write_to(data_model_json_after)
assert_true(len(data_model_json_before.getvalue()) > len(data_model_json_after.getvalue()))
@@ -276,7 +279,7 @@
                       'keyword_Verysimple.Test.0')

     def test_suite_data_model_keywords_clearing(self):
-        self._test_remove_keywords(self._get_data_model(self.SUITE_XML))
+ self._test_remove_keywords(self._get_data_model(self.SUITE_XML), should_contain_strings=['*key', '*val'])

     def test_statistics_xml_parsing(self):
         statistics_xml = """

Reply via email to