asyncio, Tulip issue 131: as_completed() and wait() now raises a TypeError if

the list of futures is not a list but a Future, Task or coroutine object
This commit is contained in:
Victor Stinner 2014-02-11 11:54:08 +01:00
parent 4e8d2f25e2
commit eb74876e99
2 changed files with 30 additions and 0 deletions

View file

@ -7,6 +7,11 @@ import asyncio
from asyncio import test_utils
@asyncio.coroutine
def coroutine_function():
pass
class Dummy:
def __repr__(self):
@ -1338,6 +1343,27 @@ class TaskTests(unittest.TestCase):
child2.set_result(2)
test_utils.run_briefly(self.loop)
def test_as_completed_invalid_args(self):
fut = asyncio.Future(loop=self.loop)
# as_completed() expects a list of futures, not a future instance
self.assertRaises(TypeError, self.loop.run_until_complete,
asyncio.as_completed(fut, loop=self.loop))
self.assertRaises(TypeError, self.loop.run_until_complete,
asyncio.as_completed(coroutine_function(), loop=self.loop))
def test_wait_invalid_args(self):
fut = asyncio.Future(loop=self.loop)
# wait() expects a list of futures, not a future instance
self.assertRaises(TypeError, self.loop.run_until_complete,
asyncio.wait(fut, loop=self.loop))
self.assertRaises(TypeError, self.loop.run_until_complete,
asyncio.wait(coroutine_function(), loop=self.loop))
# wait() expects at least a future
self.assertRaises(ValueError, self.loop.run_until_complete,
asyncio.wait([], loop=self.loop))
class GatherTestsBase: