Revision: 2513
Author: pekka.klarck
Date: Tue Feb 23 04:31:44 2010
Log: Set `timeouted` attribute to ExecutionFailed to make it possible to handle them separately.
http://code.google.com/p/robotframework/source/detail?r=2513

Modified:
 /trunk/src/robot/errors.py
 /trunk/src/robot/running/keywords.py

=======================================
--- /trunk/src/robot/errors.py  Sun Apr 19 13:26:54 2009
+++ /trunk/src/robot/errors.py  Tue Feb 23 04:31:44 2010
@@ -41,6 +41,9 @@

 class ExecutionFailed(RobotError):
     """Used for cummunicating failures in test execution"""
+    def __init__(self, message, timeouted=False):
+        RobotError.__init__(self, message)
+        self.timeouted = timeouted

 class TimeoutError(RobotError):
     """Used when test execution is timed out"""
=======================================
--- /trunk/src/robot/running/keywords.py        Sun Apr 19 13:26:54 2009
+++ /trunk/src/robot/running/keywords.py        Tue Feb 23 04:31:44 2010
@@ -16,7 +16,8 @@
 import time

 from robot import utils
-from robot.errors import FrameworkError, ExecutionFailed, DataError
+from robot.errors import FrameworkError, ExecutionFailed, DataError, \
+    TimeoutError
 from robot.common import BaseKeyword
 from robot.output import LOGGER
 from robot.variables import is_list_var
@@ -74,12 +75,17 @@
             return handler.run(output, namespace, self.args[:])
         except ExecutionFailed:
             raise
+        except TimeoutError:
+            self._report_failure(output, timeouted=True)
         except:
-            msg, details = utils.get_error_details()
-            output.fail(msg)
-            if details:
-                output.debug(details)
-            raise ExecutionFailed(utils.cut_long_message(msg))
+            self._report_failure(output)
+
+    def _report_failure(self, output, timeouted=False):
+        msg, details = utils.get_error_details()
+        output.fail(msg)
+        if details:
+            output.debug(details)
+        raise ExecutionFailed(utils.cut_long_message(msg), timeouted)


 class SetKeyword(Keyword):

Reply via email to