def _add_with_prereq(self, entry, _auto=False):
        """Add a TestEntry instance to the list of tests.

        Also adds any prerequisites, if not already present, recursively.
        Don't automatically add prerequisites if debug level is 3 or more.
        """
        if self._debug < 3:
            for prereq in entry.inst.OPTIONS.prerequisites:
                impl = prereq.implementation
                # If only a class name is given, assume it refers to a class
                # in the same module as the defining test, and convert to full
                # path using that module.
                if "." not in impl:
                    impl = sys.modules[entry.inst.__class__.__module__].__name__ + "." + impl
                    prereq.implementation = impl
                pretestclass = module.get_object(impl)
                pretestclass.set_test_options()
                preentry = TestEntry(pretestclass(self.config), prereq.args, prereq.kwargs, True)
                presig, argsig = preentry.get_signature()
                if presig not in self._multitestset:
                    self._add_with_prereq(preentry, True)
        testcaseid = entry.get_signature()
        if not _auto:
            self._tests.append(entry)
        elif testcaseid not in self._testset:
                self._tests.append(entry)
        self._testset.add(testcaseid)
dataset/ETHPy150Open kdart/pycopia/QA/pycopia/QA/core.py/TestSuite._add_with_prereq/original