3 new revisions:

Revision: 1fa45c259a72
Author:   Mikko Korpela <[email protected]>
Date:     Fri Jun 17 01:23:08 2011
Log:      for loop keyword remove
http://code.google.com/p/robotframework/source/detail?r=1fa45c259a72

Revision: ab6646c39b56
Author:   Mikko Korpela <[email protected]>
Date:     Fri Jun 17 01:23:19 2011
Log:      Automated merge with https://robotframework.googlecode.com/hg/
http://code.google.com/p/robotframework/source/detail?r=ab6646c39b56

Revision: d446b2cbef9b
Author:   Mikko Korpela <[email protected]>
Date:     Fri Jun 17 01:30:20 2011
Log:      for loop type from "for" to "forloop"
http://code.google.com/p/robotframework/source/detail?r=d446b2cbef9b

==============================================================================
Revision: 1fa45c259a72
Author:   Mikko Korpela <[email protected]>
Date:     Fri Jun 17 01:23:08 2011
Log:      for loop keyword remove
http://code.google.com/p/robotframework/source/detail?r=1fa45c259a72

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

=======================================
--- /src/robot/result/jsondatamodel.py  Wed Jun 15 22:45:32 2011
+++ /src/robot/result/jsondatamodel.py  Fri Jun 17 01:23:08 2011
@@ -62,7 +62,7 @@
     def _is_ignorable_keyword(self, item):
# Top level teardown is kept to make tests fail if suite teardown failed # TODO: Could we store information about failed suite teardown otherwise? - return isinstance(item, list) and item and item[0] in ['kw', 'setup'] + return isinstance(item, list) and item and item[0] in ['kw', 'setup', 'for', 'foritem']

     def _prune_unused_texts(self):
used = self._collect_used_text_indices(self._robot_data['suite'], set())
=======================================
--- /utest/result/test_js_serializer.py Thu Jun 16 11:25:32 2011
+++ /utest/result/test_js_serializer.py Fri Jun 17 01:23:08 2011
@@ -38,6 +38,53 @@
<status status="PASS" endtime="20110601 12:01:51.354" starttime="20110601 12:01:51.329"></status>
                     </suite>"""

+    FOR_LOOP_XML = """
+        <kw type="for" name="${i} IN RANGE [ 2 ]" timeout="">
+            <doc></doc>
+            <arguments></arguments>
+            <kw type="foritem" name="${i} = 0" timeout="">
+                <doc></doc>
+                <arguments></arguments>
+                <kw type="kw" name="babba" timeout="">
+                    <doc>Foo bar.</doc>
+                    <arguments>
+                        <arg>${i}</arg>
+                    </arguments>
+ <msg timestamp="20110617 09:56:04.365" level="INFO">0</msg> + <status status="PASS" endtime="20110617 09:56:04.365" starttime="20110617 09:56:04.365"></status>
+                </kw>
+ <status status="PASS" endtime="20110617 09:56:04.365" starttime="20110617 09:56:04.365"></status>
+            </kw>
+            <kw type="foritem" name="${i} = 1" timeout="">
+                <doc></doc>
+                <arguments></arguments>
+                <kw type="kw" name="babba" timeout="">
+                    <doc>Foo bar.</doc>
+                    <arguments>
+                        <arg>${i}</arg>
+                    </arguments>
+ <msg timestamp="20110617 09:56:04.366" level="INFO">1</msg> + <status status="PASS" endtime="20110617 09:56:04.366" starttime="20110617 09:56:04.366"></status>
+                </kw>
+ <status status="PASS" endtime="20110617 09:56:04.367" starttime="20110617 09:56:04.366"></status>
+            </kw>
+            <kw type="foritem" name="${i} = 2" timeout="">
+                <doc></doc>
+                <arguments></arguments>
+                <kw type="kw" name="babba" timeout="">
+                    <doc>Foo bar.</doc>
+                    <arguments>
+                        <arg>${i}</arg>
+                    </arguments>
+ <msg timestamp="20110617 09:56:04.367" level="INFO">2</msg> + <status status="PASS" endtime="20110617 09:56:04.367" starttime="20110617 09:56:04.367"></status>
+                </kw>
+ <status status="PASS" endtime="20110617 09:56:04.368" starttime="20110617 09:56:04.367"></status>
+            </kw>
+ <status status="PASS" endtime="20110617 09:56:04.368" starttime="20110617 09:56:04.364"></status>
+        </kw>
+        """
+
     def setUp(self):
         self._context = Context()
         self._handler = _RobotOutputHandler(self._context)
@@ -118,6 +165,31 @@
self.assert_model(data_model, 1306835289070, ['teardown', 1, 0, 2, 3, [0, "W", 3], ["P", -1, 2]], ['*', '*BuiltIn.Log', '*Logs the given message with the given level.', '*keyword teardown']) assert_equals(self._context.link_to([0, "W", 3]), "keyword_suite.0")

+    def test_for_loop_xml_parsing(self):
+        self._context.start_suite('suite')
+        data_model = self._get_data_model(self.FOR_LOOP_XML)
+        self.assert_model(data_model, 1308293764365,
+                          ['for', 1, 0, 0, 0,
+                              ['foritem', 2, 0, 0, 0,
+ ['kw', 3, 0, 4, 5, [0, 'I', 6], ['P', 0, 0]], ['P', 0, 0]],
+                              ['foritem', 7, 0, 0, 0,
+ ['kw', 3, 0, 4, 5, [1, 'I', 8], ['P', 1, 0]], ['P', 1, 1]],
+                              ['foritem', 9, 0, 0, 0,
+ ['kw', 3, 0, 4, 5, [2, 'I', 10], ['P', 2, 0]], ['P', 2, 1]],
+                              ['P', -1, 4]],
+ ['*', '*${i} IN RANGE [ 2 ]', '*${i} = 0', '*babba', '*Foo bar.', '*${i}', '*0', '*${i} = 1', '*1', '*${i} = 2', '*2'])
+
+    def test_for_loop_remove_keywords(self):
+        self._context.start_suite('suite')
+        test_xml = '<test name="Test" timeout=""><doc></doc>' + \
+                   self.FOR_LOOP_XML + \
+ '<tags></tags><status status="PASS" endtime="20110601 12:01:51.354" critical="yes" starttime="20110601 12:01:51.353"></status></test>'
+        data_model = self._get_data_model(test_xml)
+        data_model.remove_keywords()
+        self.assert_model(data_model, 1308293764365,
+            ['test', 1, 0, 'Y', 0, [], ['P', -1374853012, 1]],
+            ['*', '*Test', '', '', '', '', '', '', '', '', '', ''])
+
     def test_test_xml_parsing(self):
         test_xml = """
         <test name="Test" timeout="">

==============================================================================
Revision: ab6646c39b56
Author:   Mikko Korpela <[email protected]>
Date:     Fri Jun 17 01:23:19 2011
Log:      Automated merge with https://robotframework.googlecode.com/hg/
http://code.google.com/p/robotframework/source/detail?r=ab6646c39b56



==============================================================================
Revision: d446b2cbef9b
Author:   Mikko Korpela <[email protected]>
Date:     Fri Jun 17 01:30:20 2011
Log:      for loop type from "for" to "forloop"
http://code.google.com/p/robotframework/source/detail?r=d446b2cbef9b

Modified:
 /src/robot/result/elementhandlers.py
 /src/robot/result/jsondatamodel.py
 /src/robot/webcontent/testdata.js
 /utest/result/test_js_serializer.py
 /utest/webcontent/spec/ParsingSpec.js

=======================================
--- /src/robot/result/elementhandlers.py        Thu Jun 16 11:25:09 2011
+++ /src/robot/result/elementhandlers.py        Fri Jun 17 01:30:20 2011
@@ -118,6 +118,7 @@
         _Handler.__init__(self, context)
         self._context.start_keyword()
         self._type = attrs.get('type')
+        if self._type == 'for': self._type = 'forloop'
         self._name = self._context.get_text_id(attrs.get('name'))
         self._timeout = self._context.get_text_id(attrs.get('timeout'))

=======================================
--- /src/robot/result/jsondatamodel.py  Fri Jun 17 01:23:08 2011
+++ /src/robot/result/jsondatamodel.py  Fri Jun 17 01:30:20 2011
@@ -62,7 +62,7 @@
     def _is_ignorable_keyword(self, item):
# Top level teardown is kept to make tests fail if suite teardown failed # TODO: Could we store information about failed suite teardown otherwise? - return isinstance(item, list) and item and item[0] in ['kw', 'setup', 'for', 'foritem'] + return isinstance(item, list) and item and item[0] in ['kw', 'setup', 'forloop', 'foritem']

     def _prune_unused_texts(self):
used = self._collect_used_text_indices(self._robot_data['suite'], set())
=======================================
--- /src/robot/webcontent/testdata.js   Thu Jun 16 23:35:07 2011
+++ /src/robot/webcontent/testdata.js   Fri Jun 17 01:30:20 2011
@@ -5,7 +5,7 @@
     var KEYWORD_TYPE = {kw: 'KEYWORD',
         setup:'SETUP',
         teardown:'TEARDOWN',
-        for:'FOR',
+        forloop:'FOR',
         foritem:'VAR'
     };
     var _statistics = null;
@@ -83,7 +83,7 @@
         return kw;
     }

- var keywordMatcher = headerMatcher("kw", "setup", "teardown", "foritem", "for"); + var keywordMatcher = headerMatcher("kw", "setup", "teardown", "foritem", "forloop");

     function messageMatcher(elem) {
         return (elem.length == 3 &&
=======================================
--- /utest/result/test_js_serializer.py Fri Jun 17 01:23:08 2011
+++ /utest/result/test_js_serializer.py Fri Jun 17 01:30:20 2011
@@ -169,7 +169,7 @@
         self._context.start_suite('suite')
         data_model = self._get_data_model(self.FOR_LOOP_XML)
         self.assert_model(data_model, 1308293764365,
-                          ['for', 1, 0, 0, 0,
+                          ['forloop', 1, 0, 0, 0,
                               ['foritem', 2, 0, 0, 0,
['kw', 3, 0, 4, 5, [0, 'I', 6], ['P', 0, 0]], ['P', 0, 0]],
                               ['foritem', 7, 0, 0, 0,
=======================================
--- /utest/webcontent/spec/ParsingSpec.js       Thu Jun 16 23:35:07 2011
+++ /utest/webcontent/spec/ParsingSpec.js       Fri Jun 17 01:30:20 2011
@@ -62,7 +62,7 @@

     beforeEach(function () {
         var keyword = ["kw",2,0,3,4, [0,"I",4], ["P",0,0]];
-        var forloop = ["for",11,0,0,0,
+        var forloop = ["forloop",11,0,0,0,
             ["foritem",12,0,0,0, keyword, ["P", 0, 0]], ["P", 0, 0],
             ["foritem",13,0,0,0, keyword, ["P", 0, 0]], ["P", 0, 0]]
var test = ["test",1,10,"Y",6, keyword, forloop, [7, 8],["P",-1,2]];

Reply via email to