diff options
| -rwxr-xr-x | tests/runtests.py | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/tests/runtests.py b/tests/runtests.py index b678988391..b3150ab698 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -65,16 +65,6 @@ RUNTESTS_DIR = os.path.abspath(os.path.dirname(__file__)) TEMPLATE_DIR = os.path.join(RUNTESTS_DIR, "templates") -# Create a specific subdirectory for the duration of the test suite. -TMPDIR = tempfile.mkdtemp(prefix="django_") -# Set the TMPDIR environment variable in addition to tempfile.tempdir -# so that children processes inherit it. -tempfile.tempdir = os.environ["TMPDIR"] = TMPDIR - -# Removing the temporary TMPDIR. -atexit.register(shutil.rmtree, TMPDIR) - - # This is a dict mapping RUNTESTS_DIR subdirectory to subdirectories of that # directory to skip when searching for test modules. SUBDIRS_TO_SKIP = { @@ -197,6 +187,7 @@ def get_filtered_test_modules(start_at, start_after, gis_enabled, test_labels=No def setup_collect_tests(start_at, start_after, test_labels=None): + TMPDIR = os.environ["TMPDIR"] state = { "INSTALLED_APPS": settings.INSTALLED_APPS, "ROOT_URLCONF": getattr(settings, "ROOT_URLCONF", ""), @@ -334,13 +325,6 @@ def setup_run_tests(verbosity, start_at, start_after, test_labels=None): def teardown_run_tests(state): teardown_collect_tests(state) - # Discard the multiprocessing.util finalizer that tries to remove a - # temporary directory that's already removed by this script's - # atexit.register(shutil.rmtree, TMPDIR) handler. Prevents - # FileNotFoundError at the end of a test run (#27890). - from multiprocessing.util import _finalizer_registry - - _finalizer_registry.pop((-100, 0), None) del os.environ["RUNNING_DJANGOS_TEST_SUITE"] @@ -539,6 +523,14 @@ def paired_tests(paired_test, options, test_labels, start_at, start_after): if __name__ == "__main__": + # Create a specific subdirectory for the duration of the test suite. + TMPDIR = tempfile.mkdtemp(prefix="django_") + # Set the TMPDIR environment variable in addition to tempfile.tempdir + # so that children processes inherit it. + tempfile.tempdir = os.environ["TMPDIR"] = TMPDIR + # Remove the temporary TMPDIR. + atexit.register(shutil.rmtree, TMPDIR) + parser = argparse.ArgumentParser(description="Run the Django test suite.") parser.add_argument( "modules", |
