diff --git a/bazel/_gevent_test_main.py b/bazel/_gevent_test_main.py index f7936daaf0d..bec31a911b6 100644 --- a/bazel/_gevent_test_main.py +++ b/bazel/_gevent_test_main.py @@ -42,6 +42,7 @@ import unittest import sys import os import pkgutil +import importlib def trace_callback(event, args): if event in ("switch", "throw"): @@ -73,7 +74,9 @@ class SingleLoader(object): tests = [] for importer, module_name, is_package in pkgutil.walk_packages([os.path.dirname(os.path.relpath(__file__))]): if pattern in module_name: - module = importer.find_module(module_name).load_module(module_name) + spec = importer.find_spec(module_name) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) tests.append(loader.loadTestsFromModule(module)) if len(tests) != 1: raise AssertionError("Expected only 1 test module. Found {}".format(tests)) diff --git a/src/python/grpcio_tests/tests/_loader.py b/src/python/grpcio_tests/tests/_loader.py index 0d82ce40116..9db7e343acb 100644 --- a/src/python/grpcio_tests/tests/_loader.py +++ b/src/python/grpcio_tests/tests/_loader.py @@ -103,12 +103,13 @@ class Loader(object): for importer, module_name, is_package in pkgutil.walk_packages( [package_path], prefix ): - found_module = importer.find_module(module_name) module = None if module_name in sys.modules: module = sys.modules[module_name] else: - module = found_module.load_module(module_name) + spec = importer.find_spec(module_name) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) self.visit_module(module) def visit_module(self, module):