コード例 #1
0
def python_resolver(name, reference, find_tests):
    module_path, tests_filter = reference_split(reference)
    if tests_filter is not None:
        tests_filter = re.compile(tests_filter)

    criteria_check = check_file(module_path, reference)
    if criteria_check is not True:
        return criteria_check

    # disabled tests not needed here
    class_methods_info, _ = find_tests(module_path)
    runnables = []
    for klass, methods_tags_depens in class_methods_info.items():
        for (method, tags, depens) in methods_tags_depens:
            klass_method = f"{klass}.{method}"
            if tests_filter is not None and not tests_filter.search(
                    klass_method):
                continue
            uri = f"{module_path}:{klass_method}"
            runnables.append(
                Runnable(name, uri=uri, tags=tags, dependencies=depens))
    if runnables:
        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.SUCCESS,
                                   runnables)

    return ReferenceResolution(reference, ReferenceResolutionResult.NOTFOUND)
コード例 #2
0
    def resolve(reference):

        # It may be possible to have Robot Framework tests in other
        # types of files such as reStructuredText (.rst), but given
        # that we're not testing that, let's restrict to files ending
        # in .robot files
        criteria_check = check_file(reference, reference, suffix='.robot')
        if criteria_check is not True:
            return criteria_check

        robot_suite = find_tests(reference, test_suite={})
        runnables = []
        for item in robot_suite:
            for robot_test in robot_suite[item]:
                uri = "%s:%s.%s" % (robot_test['test_source'],
                                    item,
                                    robot_test['test_name'])

                runnables.append(Runnable('robot', uri=uri))

        if runnables:
            return ReferenceResolution(reference,
                                       ReferenceResolutionResult.SUCCESS,
                                       runnables)

        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.NOTFOUND)
コード例 #3
0
ファイル: resolvers.py プロジェクト: zhijianli88/avocado
def python_resolver(name, reference, find_tests):
    module_path, tests_filter = reference_split(reference)
    if tests_filter is not None:
        tests_filter = re.compile(tests_filter)

    criteria_check = check_file(module_path, reference)
    if criteria_check is not True:
        return criteria_check

    # disabled tests not needed here
    class_methods_info, _ = find_tests(module_path)
    runnables = []
    for klass, methods_tags_reqs in class_methods_info.items():
        for (method, tags, reqs) in methods_tags_reqs:
            klass_method = "%s.%s" % (klass, method)
            if tests_filter is not None and not tests_filter.search(
                    klass_method):
                continue
            uri = "%s:%s" % (module_path, klass_method)
            runnables.append(
                Runnable(name,
                         uri=uri,
                         tags=tags,
                         requirements=reqs,
                         config=settings.as_dict(r'^runner\.')))
    if runnables:
        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.SUCCESS,
                                   runnables)

    return ReferenceResolution(reference, ReferenceResolutionResult.NOTFOUND)
コード例 #4
0
ファイル: resolvers.py プロジェクト: Abhi-aryan/avocado
    def resolve(reference):
        if ':' in reference:
            module_path, _ = reference.split(':', 1)
        else:
            module_path = reference

        criteria_check = check_file(module_path, reference)
        if criteria_check is not True:
            return criteria_check

        # disabled tests not needed here
        class_methods_info, _ = find_avocado_tests(module_path)
        runnables = []
        for klass, methods_tags in class_methods_info.items():
            for (method, tags) in methods_tags:
                uri = "%s:%s.%s" % (module_path, klass, method)
                runnables.append(
                    Runnable('avocado-instrumented', uri=uri, tags=tags))
        if runnables:
            return ReferenceResolution(reference,
                                       ReferenceResolutionResult.SUCCESS,
                                       runnables)

        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.NOTFOUND)
コード例 #5
0
ファイル: resolvers.py プロジェクト: Abhi-aryan/avocado
    def resolve(reference):

        criteria_check = check_file(reference, reference)
        if criteria_check is not True:
            return criteria_check

        class_methods = find_python_unittests(reference)
        if class_methods:
            runnables = []
            mod = os.path.relpath(reference)
            if mod.endswith('.py'):
                mod = mod[:-3]
            mod = mod.replace(os.path.sep, ".")
            for klass, meths in class_methods.items():
                for (meth, tags) in meths:
                    uri = '%s.%s.%s' % (mod, klass, meth)
                    runnables.append(
                        Runnable('python-unittest', uri=uri, tags=tags))
            if runnables:
                return ReferenceResolution(reference,
                                           ReferenceResolutionResult.SUCCESS,
                                           runnables)

        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.NOTFOUND)
コード例 #6
0
    def resolve(reference):
        module_path, tests_filter = reference_split(reference)
        if tests_filter is not None:
            tests_filter = re.compile(tests_filter)

        criteria_check = check_file(module_path, reference)
        if criteria_check is not True:
            return criteria_check

        # disabled tests not needed here
        class_methods_info, _ = find_avocado_tests(module_path)
        runnables = []
        for klass, methods_tags_reqs in class_methods_info.items():
            for (method, tags, reqs) in methods_tags_reqs:
                klass_method = "%s.%s" % (klass, method)
                if tests_filter is not None:
                    if not tests_filter.search(klass_method):
                        continue
                uri = "%s:%s" % (module_path, klass_method)
                runnables.append(
                    Runnable('avocado-instrumented',
                             uri=uri,
                             tags=tags,
                             requirements=reqs))
        if runnables:
            return ReferenceResolution(reference,
                                       ReferenceResolutionResult.SUCCESS,
                                       runnables)

        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.NOTFOUND)
コード例 #7
0
    def resolve(reference):  # pylint: disable=W0221

        # It may be possible to have Robot Framework tests in other
        # types of files such as reStructuredText (.rst), but given
        # that we're not testing that, let's restrict to files ending
        # in .robot files
        criteria_check = check_file(reference, reference, suffix=".robot")
        if criteria_check is not True:
            return criteria_check

        robot_suite = find_tests(reference, test_suite={})
        runnables = []
        for key, value in robot_suite.items():
            for robot_test in value:
                uri = f"{robot_test['test_source']}:" f"{key}.{robot_test['test_name']}"

                runnables.append(Runnable("robot", uri=uri))

        if runnables:
            return ReferenceResolution(reference,
                                       ReferenceResolutionResult.SUCCESS,
                                       runnables)

        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.NOTFOUND)
コード例 #8
0
    def resolve(reference):

        criteria_check = check_file(reference, reference, suffix=None,
                                    type_name='executable file',
                                    access_check=os.R_OK | os.X_OK,
                                    access_name='executable')
        if criteria_check is not True:
            return criteria_check

        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.SUCCESS,
                                   [Runnable('exec-test', reference)])
コード例 #9
0
    def resolve(self, reference):

        criteria_check = check_file(reference,
                                    reference,
                                    suffix=None,
                                    type_name='executable file',
                                    access_check=os.R_OK | os.X_OK,
                                    access_name='executable')
        if criteria_check is not True:
            return criteria_check

        runnable = Runnable('tap', reference, cofig=self.config)
        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.SUCCESS,
                                   [runnable])
コード例 #10
0
ファイル: resolvers.py プロジェクト: zhijianli88/avocado
    def resolve(reference):

        criteria_check = check_file(reference,
                                    reference,
                                    suffix=None,
                                    type_name='executable file',
                                    access_check=os.R_OK | os.X_OK,
                                    access_name='executable')
        if criteria_check is not True:
            return criteria_check

        return ReferenceResolution(
            reference, ReferenceResolutionResult.SUCCESS, [
                Runnable(
                    'tap', reference, config=settings.as_dict(r'^runner\.'))
            ])
コード例 #11
0
    def resolve(self, reference):

        criteria_check = check_file(
            reference,
            reference,
            suffix=None,
            type_name="executable file",
            access_check=os.R_OK | os.X_OK,
            access_name="executable",
        )
        if criteria_check is not True:
            return criteria_check

        runnable = Runnable("exec-test", reference)
        return ReferenceResolution(reference,
                                   ReferenceResolutionResult.SUCCESS,
                                   [runnable])