[Python-checkins] cpython (merge 3.4 -> default): (Merge 3.4) Issue #21163: Fix "destroy pending task" warning in

victor.stinner python-checkins at python.org
Wed Jul 16 18:52:12 CEST 2014


http://hg.python.org/cpython/rev/a627b23f57d4
changeset:   91697:a627b23f57d4
parent:      91695:fbd3e9f635b6
parent:      91696:e4fe6706b7b4
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Wed Jul 16 18:50:54 2014 +0200
summary:
  (Merge 3.4) Issue #21163: Fix "destroy pending task" warning in test_wait_errors()

files:
  Lib/asyncio/tasks.py                |   4 ++--
  Lib/test/test_asyncio/test_tasks.py |  11 +++++++----
  2 files changed, 9 insertions(+), 6 deletions(-)


diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py
--- a/Lib/asyncio/tasks.py
+++ b/Lib/asyncio/tasks.py
@@ -330,14 +330,14 @@
         raise TypeError("expect a list of futures, not %s" % type(fs).__name__)
     if not fs:
         raise ValueError('Set of coroutines/Futures is empty.')
+    if return_when not in (FIRST_COMPLETED, FIRST_EXCEPTION, ALL_COMPLETED):
+        raise ValueError('Invalid return_when value: {}'.format(return_when))
 
     if loop is None:
         loop = events.get_event_loop()
 
     fs = {async(f, loop=loop) for f in set(fs)}
 
-    if return_when not in (FIRST_COMPLETED, FIRST_EXCEPTION, ALL_COMPLETED):
-        raise ValueError('Invalid return_when value: {}'.format(return_when))
     return (yield from _wait(fs, timeout, return_when, loop))
 
 
diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py
--- a/Lib/test/test_asyncio/test_tasks.py
+++ b/Lib/test/test_asyncio/test_tasks.py
@@ -623,10 +623,13 @@
             ValueError, self.loop.run_until_complete,
             asyncio.wait(set(), loop=self.loop))
 
-        self.assertRaises(
-            ValueError, self.loop.run_until_complete,
-            asyncio.wait([asyncio.sleep(10.0, loop=self.loop)],
-                         return_when=-1, loop=self.loop))
+        # -1 is an invalid return_when value
+        sleep_coro = asyncio.sleep(10.0, loop=self.loop)
+        wait_coro = asyncio.wait([sleep_coro], return_when=-1, loop=self.loop)
+        self.assertRaises(ValueError,
+                          self.loop.run_until_complete, wait_coro)
+
+        sleep_coro.close()
 
     def test_wait_first_completed(self):
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list