Beispiel #1
0
    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
Beispiel #2
0
    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