From: Zackery Spytz Date: Fri, 3 May 2019 15:35:26 +0000 (-0600) Subject: bpo-24638: Improve the error message in asyncio.ensure_future() (#12848) X-Git-Tag: v3.8.0a4~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4737b923df6fbdb9e2bf3fdccea2112270556e0a;p=thirdparty%2FPython%2Fcpython.git bpo-24638: Improve the error message in asyncio.ensure_future() (#12848) --- diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py index 007a459857d2..b007b74344ed 100644 --- a/Lib/asyncio/tasks.py +++ b/Lib/asyncio/tasks.py @@ -628,7 +628,8 @@ def ensure_future(coro_or_future, *, loop=None): return task elif futures.isfuture(coro_or_future): if loop is not None and loop is not futures._get_loop(coro_or_future): - raise ValueError('loop argument must agree with Future') + raise ValueError('The future belongs to a different loop than ' + 'the one specified as the loop argument') return coro_or_future elif inspect.isawaitable(coro_or_future): return ensure_future(_wrap_awaitable(coro_or_future), loop=loop) diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py index 1cdff528def4..c4f6d703549c 100644 --- a/Lib/test/test_asyncio/test_tasks.py +++ b/Lib/test/test_asyncio/test_tasks.py @@ -236,6 +236,15 @@ class BaseTaskTests: with self.assertRaises(TypeError): asyncio.ensure_future('ok') + def test_ensure_future_error_msg(self): + loop = asyncio.new_event_loop() + f = self.new_future(self.loop) + with self.assertRaisesRegex(ValueError, 'The future belongs to a ' + 'different loop than the one specified as ' + 'the loop argument'): + asyncio.ensure_future(f, loop=loop) + loop.close() + def test_get_stack(self): T = None