def search_keyword_in_list(keyword, input_list): """ Searches for the keyword in the list of method or function objects Returns a list of matching method/function objects """ match_list = [] for element in input_list: if element.__name__ == keyword: if WarriorCliClass.mock or WarriorCliClass.sim: if element.__dict__.get("mockready") is None: pNote_level("The selected keyword {} isn't supported in trial mode".format(element.__name__), "ERROR") else: pNote_level("Keyword {} is being mocked".format(element.__name__), "INFO") match_list.append(element) else: match_list.append(element) return match_list
def update_data_repository(keyword, keyword_result, data_repository): """updates the datarepository based on the return from the keyword execution """ step_num = data_repository['step_num'] if keyword_result is None: pNote_level("Keyword '{0}' did not return anything".format(keyword), "debug", "kw") data_repository['step-%s_status' % step_num] = 'ERROR' elif isinstance(keyword_result, str): if keyword_result.upper() in ["ERROR", "EXCEPTION", "RAN"]: pNote_level("Keyword '{0}' returned an {1}".format(keyword, keyword_result), "debug", "kw") data_repository['step-%s_status' % step_num] = keyword_result.upper() elif isinstance(keyword_result, bool): pNote_level("Keyword '{0}' returned a status only....".format(keyword), "debug", "kw") data_repository['step-%s_status' % step_num] = keyword_result elif isinstance(keyword_result, dict): pNote_level("Keyword '{0}' returned only a dictionary .. " "updating data_repository".format(keyword), "debug", "kw") pNote_level("Keyword '{0}' did not return any status ".format(keyword), "debug", "kw") data_repository.update(keyword_result) data_repository['step-%s_status' % step_num] = 'Error' elif isinstance(keyword_result, tuple): if isinstance(keyword_result[0], str) and keyword_result[0] == "EXCEPTION": pNote_level("Keyword '{0}' execution raised an" "exception".format(keyword), "debug", "kw") data_repository['step-%s_status' % step_num] = keyword_result[0] data_repository['step-%s_exception' % step_num] = keyword_result[1] elif isinstance(keyword_result[0], str) and keyword_result[0].upper() == "RAN": pNote_level("Keyword '{0}' returned "\ "a status..".format(keyword), "debug", "kw") data_repository['step-%s_status' % step_num] = "RAN" else: pNote_level("Keyword '{0}' returned multiple" "values ".format(keyword), "debug", "kw") data_repository['step-%s_status' % step_num] = 'Error' for element in keyword_result: if isinstance(element, bool): pNote_level("Keyword '{0}' returned" "a status..".format(keyword), "debug", "kw") data_repository['step-%s_status' % step_num] = element elif isinstance(element, dict): pNote_level("Keyword '{0}' returned a dictionary.. " "will update data_repository".format(keyword), "debug", "kw") data_repository.update(element) else: pNote_level("unexpected return type form keyword '{0}'... " "expecting bool or dict ".format(keyword), "debug", "kw") else: pNote_level("unexpected return type form keyword '{0}'... " "expecting bool/dict/error/exception".format(keyword), "debug", "kw") data_repository['step-%s_status' % step_num] = False return data_repository