Revision: 3913
Author: jussi.ao.malinen
Date: Wed Aug 25 06:25:53 2010
Log: refactored reporting failures
http://code.google.com/p/robotframework/source/detail?r=3913

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

=======================================
--- /trunk/src/robot/errors.py  Wed Aug 25 03:05:46 2010
+++ /trunk/src/robot/errors.py  Wed Aug 25 06:25:53 2010
@@ -105,15 +105,16 @@

 class HandlerExecutionFailed(ExecutionFailed):

-    def __init__(self, error_details):
-        orig_error = error_details.error
-        timeout = isinstance(orig_error, TimeoutError)
-        syntax = isinstance(orig_error, DataError)
-        exit = bool(getattr(orig_error, 'ROBOT_EXIT_ON_FAILURE', False))
- cont = bool(getattr(orig_error, 'ROBOT_CONTINUE_ON_FAILURE', False)) - exit_for_loop = bool(getattr(orig_error, 'ROBOT_EXIT_FOR_LOOP', False)) - ExecutionFailed.__init__(self, error_details.message, timeout, syntax,
+    def __init__(self):
+        details = utils.ErrorDetails()
+        timeout = isinstance(details.error, TimeoutError)
+        syntax = isinstance(details.error, DataError)
+        exit = bool(getattr(details.error, 'ROBOT_EXIT_ON_FAILURE', False))
+ cont = bool(getattr(details.error, 'ROBOT_CONTINUE_ON_FAILURE', False)) + exit_for_loop = bool(getattr(details.error, 'ROBOT_EXIT_FOR_LOOP', False))
+        ExecutionFailed.__init__(self, details.message, timeout, syntax,
                                  exit, cont, exit_for_loop)
+        self.traceback = details.traceback


 class ExecutionFailures(ExecutionFailed):
=======================================
--- /trunk/src/robot/running/keywords.py        Wed Aug 25 03:05:46 2010
+++ /trunk/src/robot/running/keywords.py        Wed Aug 25 06:25:53 2010
@@ -128,14 +128,12 @@
             raise ExecutionFailed(msg, syntax=True)

     def _report_failure(self, context):
-        # TODO: Refactor
-        error_details = utils.ErrorDetails()
-        error = HandlerExecutionFailed(error_details)
-        if not error.exit_for_loop:
-            context.output.fail(error_details.message)
-            if error_details.traceback:
-                context.output.debug(error_details.traceback)
-        raise error
+        failure = HandlerExecutionFailed()
+        if not failure.exit_for_loop:
+            context.output.fail(failure.message)
+            if failure.traceback:
+                context.output.debug(failure.traceback)
+        raise failure


 class _VariableAssigner(object):

Reply via email to