Revision: 3187
Author: jussi.ao.malinen
Date: Wed May  5 05:40:09 2010
Log: now for loops in teardown are run completely. fix to issue 544 (run all keywords in teardown)
http://code.google.com/p/robotframework/source/detail?r=3187

Modified:
 /trunk/atest/robot/running/errors_in_test_teardown.txt
 /trunk/atest/testdata/running/errors_in_test_teardown.txt
 /trunk/src/robot/running/keywords.py

=======================================
--- /trunk/atest/robot/running/errors_in_test_teardown.txt Tue May 4 06:41:36 2010 +++ /trunk/atest/robot/running/errors_in_test_teardown.txt Wed May 5 05:40:09 2010
@@ -15,6 +15,9 @@
 Test With A Fatal Error In Teardown
     ${tc} =  Check Test Case  ${TESTNAME}
     Should Be True  len(${tc.teardown.kws}) == 1
+
+Test With Errors In For Loop In Teardown
+    ${tc} =  Check Test Case  ${TESTNAME}

 Suite Teardown Is Executed Fully
     ${ts} =  Get Test Suite  errors in test teardown
=======================================
--- /trunk/atest/testdata/running/errors_in_test_teardown.txt Tue May 4 06:41:36 2010 +++ /trunk/atest/testdata/running/errors_in_test_teardown.txt Wed May 5 05:40:09 2010
@@ -19,6 +19,17 @@
     No Operation
     [teardown]  Many Errors

+Test With Errors In For Loop In Teardown
+    [documentation]  FAIL Teardown failed:\n
+    ...  Several failures occurred:\n\n
+    ...  1) cat\n\n
+    ...  2) again\n\n
+    ...  3) dog\n\n
+    ...  4) again\n\n
+    ...  Also teardown of the parent suite failed.
+    No Operation
+    [teardown]  Errors In For Loop
+
 Test With A Fatal Error In Teardown
     [documentation]  FAIL Teardown failed:\n
     ...  FatalCatastrophyException\n\n
@@ -36,6 +47,11 @@
     Fail  Message 2
     Log  This Should Also Be Executed

+Errors In For Loop
+    :FOR  ${animal}  in  cat  dog
+    \    Fail  ${animal}
+    \    Fail  again
+
 Fatal Error
     Exit On Failure
     Log  This Should Not Be Executed
=======================================
--- /trunk/src/robot/running/keywords.py        Wed May  5 02:37:55 2010
+++ /trunk/src/robot/running/keywords.py        Wed May  5 05:40:09 2010
@@ -36,11 +36,13 @@
             raise ExecutionFailures(errors)

     def _continue_on_failure(self, err):
-        if err.cont:
-            return True
         if err.exit:
             return False
-        return self._in_test_or_suite_teardown()
+        if err.cont:
+            return True
+        if self._in_test_or_suite_teardown():
+            err.cont = True
+        return err.cont

     def _in_test_or_suite_teardown(self):
         from robot.running import NAMESPACES

Reply via email to