diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 03093f075..893ebeda8 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -13,6 +13,7 @@ Changelog ------ Fixed ^^^^^ +- Fixed asyncio "no current event loop" deprecation warning by replacing `asyncio.get_event_loop()` with modern event loop handling using `get_running_loop()` with fallback to `new_event_loop()` (#1865) Changed ^^^^^^^ diff --git a/tortoise/contrib/test/__init__.py b/tortoise/contrib/test/__init__.py index 9613006b6..774293f81 100644 --- a/tortoise/contrib/test/__init__.py +++ b/tortoise/contrib/test/__init__.py @@ -126,7 +126,12 @@ def initializer( if db_url is not None: # pragma: nobranch _TORTOISE_TEST_DB = db_url _CONFIG = getDBConfig(app_label=app_label, modules=_MODULES) - loop = loop or asyncio.get_event_loop() + if not loop: + try: + loop = asyncio.get_running_loop() + except RuntimeError: + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) _LOOP = loop loop.run_until_complete(_init_db(_CONFIG)) _CONNECTIONS = connections._copy_storage()