def run_on_executor(fn):
@functools.wraps(fn)
def wrapper(self, *args, **kwargs):
- callback = kwargs.pop("callback")
+ callback = kwargs.pop("callback", None)
future = self.executor.submit(fn, self, *args, **kwargs)
if callback:
self.io_loop.add_future(future, callback)
import socket
from tornado.netutil import BlockingResolver, ThreadedResolver
-from tornado.testing import AsyncTestCase
+from tornado.testing import AsyncTestCase, gen_test
from tornado.test.util import unittest
try:
('127.0.0.1', 80)),
future.result())
+ @gen_test
+ def test_future_interface(self):
+ addrinfo = yield self.resolver.getaddrinfo(
+ 'localhost', 80, socket.AF_UNSPEC,
+ socket.SOCK_STREAM, socket.IPPROTO_TCP)
+ self.assertIn(
+ (socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP, '',
+ ('127.0.0.1', 80)),
+ addrinfo)
+
+
class BlockingResolverTest(AsyncTestCase, _ResolverTestMixin):
def setUp(self):