From 40c1a94af87ba7c6dc9d88f0eded91d6374af474 Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Wed, 28 Oct 2026 11:58:55 -0400 Subject: [PATCH 1/2] PYTHON-6175 Skip subinterpreter tests on gevent --- test/asynchronous/test_subinterpreters.py | 6 ++++++ test/test_subinterpreters.py | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/test/asynchronous/test_subinterpreters.py b/test/asynchronous/test_subinterpreters.py index f3e8c2883c..302016c797 100644 --- a/test/asynchronous/test_subinterpreters.py +++ b/test/asynchronous/test_subinterpreters.py @@ -40,6 +40,7 @@ async_client_context, unittest, ) +from test.utils_shared import gevent_monkey_patched _IS_SYNC = False @@ -55,6 +56,11 @@ def _get_n(queue, n, errors): @unittest.skipUnless( sys.version_info >= (3, 14), "concurrent.interpreters requires Python 3.14+" ) + @unittest.skipIf( + gevent_monkey_patched(), + "gevent turns threads into greenlets, so interp.exec() blocks the " + "main greenlet and release.put() never runs", + ) async def test_subinterpreters(self): if interpreters is None: self.skipTest("concurrent.interpreters is not available") diff --git a/test/test_subinterpreters.py b/test/test_subinterpreters.py index e16d8be642..de43c42f3f 100644 --- a/test/test_subinterpreters.py +++ b/test/test_subinterpreters.py @@ -40,6 +40,7 @@ client_context, unittest, ) +from test.utils_shared import gevent_monkey_patched _IS_SYNC = True @@ -55,6 +56,11 @@ def _get_n(queue, n, errors): @unittest.skipUnless( sys.version_info >= (3, 14), "concurrent.interpreters requires Python 3.14+" ) + @unittest.skipIf( + gevent_monkey_patched(), + "gevent turns threads into greenlets, so interp.exec() blocks the " + "main greenlet and release.put() never runs", + ) def test_subinterpreters(self): if interpreters is None: self.skipTest("concurrent.interpreters is not available") From 89dfb21411e8938bee0deb639b05e58be866676e Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Wed, 28 Oct 2026 12:00:04 -0400 Subject: [PATCH 2/2] Shorten skip message --- test/asynchronous/test_subinterpreters.py | 3 +-- test/test_subinterpreters.py | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/test/asynchronous/test_subinterpreters.py b/test/asynchronous/test_subinterpreters.py index 302016c797..fb8cc2d42f 100644 --- a/test/asynchronous/test_subinterpreters.py +++ b/test/asynchronous/test_subinterpreters.py @@ -58,8 +58,7 @@ def _get_n(queue, n, errors): ) @unittest.skipIf( gevent_monkey_patched(), - "gevent turns threads into greenlets, so interp.exec() blocks the " - "main greenlet and release.put() never runs", + "gevent does not support subinterpreters", ) async def test_subinterpreters(self): if interpreters is None: diff --git a/test/test_subinterpreters.py b/test/test_subinterpreters.py index de43c42f3f..d9f4207b48 100644 --- a/test/test_subinterpreters.py +++ b/test/test_subinterpreters.py @@ -58,8 +58,7 @@ def _get_n(queue, n, errors): ) @unittest.skipIf( gevent_monkey_patched(), - "gevent turns threads into greenlets, so interp.exec() blocks the " - "main greenlet and release.put() never runs", + "gevent does not support subinterpreters", ) def test_subinterpreters(self): if interpreters is None: