summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_asyncio/test_base_events.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-07-08 09:29:25 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-07-08 09:29:25 (GMT)
commit896a25ab30269369201401b50c66130911dd2238 (patch)
tree8b80add7a57b99a1e625585194cc5a8afc8a4bc3 /Lib/test/test_asyncio/test_base_events.py
parent630a4f63c539345a6432d6177931b5fcc2f18aa7 (diff)
downloadcpython-896a25ab30269369201401b50c66130911dd2238.zip
cpython-896a25ab30269369201401b50c66130911dd2238.tar.gz
cpython-896a25ab30269369201401b50c66130911dd2238.tar.bz2
asyncio: sync with Tulip
- Tulip issue 185: Add a create_task() method to event loops. The create_task() method can be overriden in custom event loop to implement their own task class. For example, greenio and Pulsar projects use their own task class. The create_task() method is now preferred over creating directly task using the Task class. - tests: fix a warning - fix typo in the name of a test function - Update AbstractEventLoop: add new event loop methods; update also the unit test
Diffstat (limited to 'Lib/test/test_asyncio/test_base_events.py')
-rw-r--r--Lib/test/test_asyncio/test_base_events.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
index adba082..f6da7c3 100644
--- a/Lib/test/test_asyncio/test_base_events.py
+++ b/Lib/test/test_asyncio/test_base_events.py
@@ -12,6 +12,7 @@ from test.support import IPV6_ENABLED
import asyncio
from asyncio import base_events
+from asyncio import events
from asyncio import constants
from asyncio import test_utils
@@ -526,6 +527,29 @@ class BaseEventLoopTests(test_utils.TestCase):
PYTHONASYNCIODEBUG='1')
self.assertEqual(stdout.rstrip(), b'False')
+ def test_create_task(self):
+ class MyTask(asyncio.Task):
+ pass
+
+ @asyncio.coroutine
+ def test():
+ pass
+
+ class EventLoop(base_events.BaseEventLoop):
+ def create_task(self, coro):
+ return MyTask(coro, loop=loop)
+
+ loop = EventLoop()
+ self.set_event_loop(loop)
+
+ coro = test()
+ task = asyncio.async(coro, loop=loop)
+ self.assertIsInstance(task, MyTask)
+
+ # make warnings quiet
+ task._log_destroy_pending = False
+ coro.close()
+
class MyProto(asyncio.Protocol):
done = None