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):