load("@rules_python//python:defs.bzl", "py_library") load("//py/private:pytest.bzl", "pytest_test") def _is_test(file): return file.startswith("test_") or file.endswith("_tests.py") def py_test_suite(name, srcs, size = None, deps = None, python_version = None, imports = None, visibility = None, **kwargs): library_name = "%s-test-lib" % name py_library( name = library_name, testonly = True, srcs = srcs, deps = deps, imports = imports, precompile = "disabled", ) tests = [] for src in srcs: if _is_test(src): test_name = "%s-%s" % (name, src) tests.append(test_name) pytest_test( name = test_name, size = size, srcs = [src], deps = [library_name], python_version = python_version, precompile = "disabled", **kwargs ) native.test_suite( name = name, tests = tests, visibility = visibility, )