https://github.com/python/cpython/commit/b0e5c35ded6d4a16d7a021c10c99bac94250edd0
commit: b0e5c35ded6d4a16d7a021c10c99bac94250edd0
branch: main
author: T. Wouters <[email protected]>
committer: Yhg1s <[email protected]>
date: 2024-02-15T14:24:13+01:00
summary:

gh-115490: Work around test.support.interpreters.channels not handling 
unloading (#115515)

Work around test.support.interpreters.channels not handling unloading, which
regrtest does when running tests sequentially, by explicitly skipping the
unloading of test.support.interpreters and its submodules.

This can be rolled back once test.support.interpreters.channels supports
unloading, if we are keeping sequential runs in the same process around.

files:
M Lib/test/libregrtest/main.py

diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py
index 7ca1b1cb65ae40..b24c1b9205450b 100644
--- a/Lib/test/libregrtest/main.py
+++ b/Lib/test/libregrtest/main.py
@@ -335,10 +335,15 @@ def run_tests_sequentially(self, runtests) -> None:
 
             result = self.run_test(test_name, runtests, tracer)
 
-            # Unload the newly imported test modules (best effort finalization)
+            # Unload the newly imported test modules (best effort
+            # finalization). To work around gh-115490, don't unload
+            # test.support.interpreters and its submodules even if they
+            # weren't loaded before.
+            keep = "test.support.interpreters"
             new_modules = [module for module in sys.modules
                            if module not in save_modules and
-                                module.startswith(("test.", "test_"))]
+                                module.startswith(("test.", "test_"))
+                                and not module.startswith(keep)]
             for module in new_modules:
                 sys.modules.pop(module, None)
                 # Remove the attribute of the parent module.

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to