def _execute(self, context): handler = self._handler if not (handler.keywords or handler.return_value): raise DataError("User keyword '%s' contains no keywords." % self.name) if context.dry_run and 'robot:no-dry-run' in handler.tags: return None, None error = return_ = pass_ = None try: StepRunner(context).run_steps(handler.keywords) except ReturnFromKeyword as exception: return_ = exception error = exception.earlier_failures except (ExitForLoop, ContinueForLoop) as exception: pass_ = exception except ExecutionPassed as exception: pass_ = exception error = exception.earlier_failures if error: error.continue_on_failure = False except ExecutionFailed as exception: error = exception with context.keyword_teardown(error): td_error = self._run_teardown(context) if error or td_error: error = UserKeywordExecutionFailed(error, td_error) return error or pass_, return_
def _execute(self, context): if not (self._handler.keywords or self._handler.return_value): raise DataError("User keyword '%s' contains no keywords." % self.name) error = return_ = pass_ = None try: StepRunner(context).run_steps(self._handler.keywords) except ReturnFromKeyword as exception: return_ = exception error = exception.earlier_failures except ExecutionPassed as exception: pass_ = exception error = exception.earlier_failures except ExecutionFailed as exception: error = exception with context.keyword_teardown(error): td_error = self._run_teardown(context) if error or td_error: error = UserKeywordExecutionFailed(error, td_error) return error or pass_, return_
def _execute(self, context, positional, kwargs): self._set_variables(positional, kwargs, context.variables) context.output.trace(lambda: self._log_args(context.variables)) self._verify_keyword_is_valid() error = return_ = pass_ = None runner = KeywordRunner(context) try: runner.run_keywords(self.keywords) except ReturnFromKeyword as exception: return_ = exception error = exception.earlier_failures except ExecutionPassed as exception: pass_ = exception error = exception.earlier_failures except ExecutionFailed as exception: error = exception with context.keyword_teardown(error): td_error = self._run_teardown(context) if error or td_error: error = UserKeywordExecutionFailed(error, td_error) return error or pass_, return_
def _execute(self, context, arguments): self._set_variables(arguments, context.variables) context.output.trace(lambda: self._log_args(context.variables)) self._verify_keyword_is_valid() self.timeout.start() error = return_ = pass_ = None try: self.keywords.run(context) except ReturnFromKeyword as exception: return_ = exception error = exception.earlier_failures except ExecutionPassed as exception: pass_ = exception error = exception.earlier_failures except ExecutionFailed as exception: error = exception with context.keyword_teardown(error): td_error = self._run_teardown(context) if error or td_error: error = UserKeywordExecutionFailed(error, td_error) return error or pass_, return_
raise error return return_value def _execute(self, context, variables, args_spec, resolved_arguments): args_spec.set_variables(resolved_arguments, variables, context.output) self._verify_keyword_is_valid() self.timeout.start() try: self.keywords.run(context) except ExecutionFailed, error: pass else: error = None td_error = self._run_teardown(context, error) if error or td_error: return UserKeywordExecutionFailed(error, td_error) def _run_teardown(self, context, error): if not self.teardown: return None teardown = Teardown(self.teardown.name, self.teardown.args) teardown.replace_variables(context.get_current_vars(), []) context.start_keyword_teardown(error) error = teardown.run(context) context.end_keyword_teardown() return error def _verify_keyword_is_valid(self): if self._errors: raise DataError('User keyword initialization failed:\n%s' % '\n'.join(self._errors))
self._execute(context, variables, args_spec, resolved_arguments) return self._get_return_value(variables) def _execute(self, context, variables, args_spec, resolved_arguments): args_spec.set_variables(resolved_arguments, variables, context.output) self._verify_keyword_is_valid() self.timeout.start() try: self.keywords.run(context) except ExecutionFailed, error: pass else: error = None td_error = self._run_teardown(context, error) if error or td_error: raise UserKeywordExecutionFailed(error, td_error) def _run_teardown(self, context, error): if not self.teardown: return None teardown = Teardown(self.teardown.name, self.teardown.args) teardown.replace_variables(context.get_current_vars(), []) context.start_keyword_teardown(error) run_errors = KeywordRunErrors() teardown.run(context, KeywordTeardownListener(run_errors)) context.end_keyword_teardown() return run_errors.teardown_error def _verify_keyword_is_valid(self): if self._errors: raise DataError('User keyword initialization failed:\n%s'