bpo-43843: libregrtest uses threading.excepthook (GH-25400)
test.libregrtest now marks a test as ENV_CHANGED (altered the
execution environment) if a thread raises an exception but does not
catch it. It sets a hook on threading.excepthook. Use
--fail-env-changed option to mark the test as failed.
libregrtest regrtest_unraisable_hook() explicitly flushs
sys.stdout, sys.stderr and sys.__stderr__.
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py
index 954e033..211321f 100644
--- a/Lib/test/test_socketserver.py
+++ b/Lib/test/test_socketserver.py
@@ -323,8 +323,11 @@ def test_threading_handled(self):
self.check_result(handled=True)
def test_threading_not_handled(self):
- ThreadingErrorTestServer(SystemExit)
- self.check_result(handled=False)
+ with threading_helper.catch_threading_exception() as cm:
+ ThreadingErrorTestServer(SystemExit)
+ self.check_result(handled=False)
+
+ self.assertIs(cm.exc_type, SystemExit)
@requires_forking
def test_forking_handled(self):