import os from test import support import unittest # Skip tests if we don't have concurrent.futures. support.import_module('concurrent.futures') def load_tests(loader, _, pattern): pkg_dir = os.path.dirname(__file__) suite = AsyncioTestSuite() return support.load_package_tests(pkg_dir, loader, suite, pattern) class AsyncioTestSuite(unittest.TestSuite): """A custom test suite that also runs setup/teardown for the whole package. Normally unittest only runs setUpModule() and tearDownModule() within each test module part of the test suite. Copying those functions to each file would be tedious, let's run this once and for all. """ def run(self, result, debug=False): ignore = support.ignore_deprecations_from tokens = { ignore("asyncio.base_events", like=r".*loop argument.*"), ignore("asyncio.unix_events", like=r".*loop argument.*"), ignore("asyncio.futures", like=r".*loop argument.*"), ignore("asyncio.runners", like=r".*loop argument.*"), ignore("asyncio.subprocess", like=r".*loop argument.*"), ignore("asyncio.tasks", like=r".*loop argument.*"), ignore("test.test_asyncio.test_events", like=r".*loop argument.*"), ignore("test.test_asyncio.test_queues", like=r".*loop argument.*"), ignore("test.test_asyncio.test_tasks", like=r".*loop argument.*"), } try: super().run(result, debug=debug) finally: support.clear_ignored_deprecations(*tokens)