def run(self, kw, name=None): handler = self._context.get_handler(name or kw.name) handler.init_keyword(self._context.variables) result = KeywordResult(kwname=handler.name or '', libname=handler.libname or '', doc=handler.shortdoc, args=kw.args, assign=self._get_assign(kw.assign), timeout=getattr(handler, 'timeout', ''), type=kw.type, status='NOT_RUN', starttime=get_timestamp()) self._context.start_keyword(result) self._warn_if_deprecated(handler.longname, handler.shortdoc) try: return_value = self._run(handler, kw) except ExecutionFailed as err: result.status = self._get_status(err) self._end(result, error=err) raise else: if not (self._context.dry_run and handler.type == 'library'): result.status = 'PASS' self._end(result, return_value) return return_value
def run(self, kw, name=None): result = KeywordResult(name=self._get_name(kw), type=kw.FOR_LOOP_TYPE, starttime=get_timestamp()) self._context.start_keyword(result) error = self._run_with_error_handling(self._validate_and_run, kw) result.status = self._get_status(error) result.endtime = get_timestamp() self._context.end_keyword(result) if error: raise error
def _run_one_round(self, data, values): name = ', '.join(format_assign_message(var, item) for var, item in zip(data.variables, values)) result = KeywordResult(name=name, type=data.FOR_ITEM_TYPE, starttime=get_timestamp()) self._context.start_keyword(result) for var, value in zip(data.variables, values): self._context.variables[var] = value runner = KeywordRunner(self._context, self._templated) error = self._run_with_error_handling(runner.run_keywords, data.keywords) result.status = self._get_status(error) result.endtime = get_timestamp() self._context.end_keyword(result) return error