Code: Select all
.env/lib/python3.13/site-packages/pytest_twisted/__init__.py:343: in _run_inline_callbacks
_instances.reactor.callLater(0.0, in_reactor, d, f, *args)
.env/lib/python3.13/site-packages/twisted/internet/asyncioreactor.py:289: in callLater
self._reschedule()
.env/lib/python3.13/site-packages/twisted/internet/asyncioreactor.py:279: in _reschedule
self._timerHandle = self._asyncioEventloop.call_at(abs_time, self._onTimer)
/usr/lib/python3.13/asyncio/base_events.py:812: in call_at
self._check_closed()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
def _check_closed(self):
if self._closed:
> raise RuntimeError('Event loop is closed')
E RuntimeError: Event loop is closed
/usr/lib/python3.13/asyncio/base_events.py:556: RuntimeError
< /code>
Da die tatsächliche Testfunktion nicht einmal ausgeführt wird, scheint der Inhalt nicht wichtig zu sein, und für dies werden auch benutzerdefinierte Vorrichtungen erforderlich. Hier ist hier ein minimales, der die anzeigt Problem: < /p>
@ensureDeferred
async def test_minimal(aiohttp_client):
app = web.Application()
await aiohttp_client(app)
< /code>
Meine Einstellungen: < /p>
[tool.pytest.ini_options]
addopts = [
"--reactor=asyncio",
]
asyncio_mode = "strict"
asyncio_default_fixture_loop_scope = "function"
Was ist die richtige Möglichkeit, solche Testfunktionen zu schreiben, vorausgesetzt, es existiert? "Schleifenumfang für alles ist tatsächlich" Sitzung ", da der Asyncio -Reaktor einmal ausgeführt wird und dieselbe Schleife für den gesamten Lauf verwendet, aber das Hauptproblem besteht darin, alle Teile dieselbe Schleife zu verwenden, und ich nicht. Ich weiß, ob das ist möglich, ohne einen der Plugins zu ändern.