summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/runtests.py26
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",