From: Victor Stinner Date: Wed, 3 Jul 2019 09:10:30 +0000 (+0200) Subject: bpo-37421: test_concurrent_futures cleans up multiprocessing (GH-14563) X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=684cb47fffb7af3ac50cb077f6d2a095c9ce20b4;p=python bpo-37421: test_concurrent_futures cleans up multiprocessing (GH-14563) test_concurrent_futures now cleans up multiprocessing to remove immediately temporary directories created by multiprocessing.util.get_temp_dir(). The test now uses setUpModule() and tearDownModule(). --- diff --git a/Lib/test/test_concurrent_futures.py b/Lib/test/test_concurrent_futures.py index 2497c2b572..c782d4c6e8 100644 --- a/Lib/test/test_concurrent_futures.py +++ b/Lib/test/test_concurrent_futures.py @@ -27,6 +27,9 @@ from concurrent.futures._base import ( from concurrent.futures.process import BrokenProcessPool from multiprocessing import get_context +import multiprocessing.process +import multiprocessing.util + def create_future(state=PENDING, exception=None, result=None): f = Future() @@ -1293,12 +1296,24 @@ class FutureTests(BaseTestCase): self.assertEqual(f.exception(), e) -@test.support.reap_threads -def test_main(): - try: - test.support.run_unittest(__name__) - finally: - test.support.reap_children() +_threads_key = None + +def setUpModule(): + global _threads_key + _threads_key = test.support.threading_setup() + + +def tearDownModule(): + test.support.threading_cleanup(*_threads_key) + test.support.reap_children() + + # cleanup multiprocessing + multiprocessing.process._cleanup() + # bpo-37421: Explicitly call _run_finalizers() to remove immediately + # temporary directories created by multiprocessing.util.get_temp_dir(). + multiprocessing.util._run_finalizers() + test.support.gc_collect() + if __name__ == "__main__": - test_main() + unittest.main() diff --git a/Misc/NEWS.d/next/Tests/2019-07-02-23-29-06.bpo-37421.WEfc5A.rst b/Misc/NEWS.d/next/Tests/2019-07-02-23-29-06.bpo-37421.WEfc5A.rst new file mode 100644 index 0000000000..215a0a1444 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2019-07-02-23-29-06.bpo-37421.WEfc5A.rst @@ -0,0 +1,2 @@ +test_concurrent_futures now cleans up multiprocessing to remove immediately +temporary directories created by multiprocessing.util.get_temp_dir().