Files
gentoo/dev-python/twisted/files/twisted-26.4.0-py314.patch
Michał Górny e092fd7feb dev-python/twisted: Bump to 26.4.0
Signed-off-by: Michał Górny <mgorny@gentoo.org>
2026-05-11 20:46:36 +02:00

44 lines
1.7 KiB
Diff

diff --git a/src/twisted/internet/test/test_asyncioreactor.py b/src/twisted/internet/test/test_asyncioreactor.py
index 2f7bad930d6..bbbb8c834ca 100644
--- a/src/twisted/internet/test/test_asyncioreactor.py
+++ b/src/twisted/internet/test/test_asyncioreactor.py
@@ -12,8 +12,8 @@
DefaultEventLoopPolicy,
Future,
SelectorEventLoop,
- get_event_loop,
get_event_loop_policy,
+ get_running_loop,
set_event_loop,
set_event_loop_policy,
)
@@ -74,14 +74,26 @@ def newLoop(self, policy: AbstractEventLoopPolicy) -> AbstractEventLoop:
Make a new asyncio loop from a policy for use with a reactor, and add
appropriate cleanup to restore any global state.
"""
- existingLoop = get_event_loop()
+ try:
+ existingLoop = get_running_loop()
+ except RuntimeError: # pragma: no branch
+ # For most runs, we should not have any existing loop,
+ # since the tests should leave a clean reactor.
+ # For some cases, like GTK tests,
+ # there might be a running reactor.
+ # To revert the state found at the start of the test
+ # we keep a reference and restore it later.
+ existingLoop = None
existingPolicy = get_event_loop_policy()
result = policy.new_event_loop()
@self.addCleanup
def cleanUp():
result.close()
- set_event_loop(existingLoop)
+ if existingLoop is not None: # pragma: no cover
+ # Revert the loop found at the start of the test.
+ # See https://github.com/twisted/twisted/pull/11706
+ set_event_loop(existingLoop)
set_event_loop_policy(existingPolicy)
return result