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