From f898a05335256c14a14598fe6504b5ceba995d48 Mon Sep 17 00:00:00 2001 From: Thomas Sarboni Date: Tue, 3 Nov 2020 02:14:02 +0100 Subject: [PATCH] Pass loop attribute to asyncio.ensure_future If we specify a custom event loop at worker instantiation, it has to also be used by asyncio instead of default one. --- mode/worker.py | 5 ++++- t/unit/test_worker.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mode/worker.py b/mode/worker.py index 07dfbb1e..96f1dfc5 100644 --- a/mode/worker.py +++ b/mode/worker.py @@ -269,7 +269,10 @@ def execute_from_commandline(self) -> NoReturn: self._starting_fut = None with exiting(file=self.stderr): try: - self._starting_fut = asyncio.ensure_future(self.start()) + self._starting_fut = asyncio.ensure_future( + self.start(), + loop=self.loop, + ) self.loop.run_until_complete(self._starting_fut) except asyncio.CancelledError: pass diff --git a/t/unit/test_worker.py b/t/unit/test_worker.py index 6c8fc457..8e730534 100644 --- a/t/unit/test_worker.py +++ b/t/unit/test_worker.py @@ -254,7 +254,7 @@ def test_execute_from_commandline(self, worker): worker.execute_from_commandline() assert excinfo.value.code == 0 assert worker._starting_fut is ensure_future.return_value - ensure_future.assert_called_once_with(worker.start.return_value) + ensure_future.assert_called_once_with(worker.start.return_value, worker.loop) worker.stop_and_shutdown.assert_called_once_with() def test_execute_from_commandline__MemoryError(self, worker):