X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fdiscover_tests.py;h=6dea20e3de516b35e6cec9ad6ffad91f705c9c1a;hb=b8c72a4a8d8bd330ab62dc0c9461cac2b137575b;hp=eea594107b67449eb43f36a69f81bc949fadaf80;hpb=e0d2bd6bd7fc59c0c6ac48195d7f825dc99bfd91;p=vpp.git diff --git a/test/discover_tests.py b/test/discover_tests.py index eea594107b6..6dea20e3de5 100755 --- a/test/discover_tests.py +++ b/test/discover_tests.py @@ -7,12 +7,14 @@ import importlib import argparse -def discover_tests(directory, callback): +def discover_tests(directory, callback, ignore_path): do_insert = True for _f in os.listdir(directory): f = "%s/%s" % (directory, _f) if os.path.isdir(f): - discover_tests(f, callback) + if ignore_path is not None and f.startswith(ignore_path): + continue + discover_tests(f, callback, ignore_path) continue if not os.path.isfile(f): continue @@ -22,15 +24,13 @@ def discover_tests(directory, callback): if not _f.startswith("test_") or not _f.endswith(".py"): continue name = "".join(f.split("/")[-1].split(".")[:-1]) - if name in sys.modules: - raise Exception("Duplicate test module `%s' found!" % name) module = importlib.import_module(name) for name, cls in module.__dict__.items(): if not isinstance(cls, type): continue if not issubclass(cls, unittest.TestCase): continue - if name == "VppTestCase": + if name == "VppTestCase" or name.startswith("Template"): continue for method in dir(cls): if not callable(getattr(cls, method)): @@ -52,6 +52,7 @@ if __name__ == '__main__': if args.dir is None: args.dir = "." + ignore_path = os.getenv("VENV_PATH", "") suite = unittest.TestSuite() for d in args.dir: - discover_tests(d, print_callback) + discover_tests(d, print_callback, ignore_path)