def callback(response):
self._response = response
self._io_loop.stop()
- self._async_client.fetch(request, callback, **kwargs)
+ self._io_loop.add_callback(self._async_client.fetch, request,
+ callback, **kwargs)
self._io_loop.start()
response = self._response
self._response = None
write_fd = fd
self.channel.process_fd(read_fd, write_fd)
- @return_future
- @gen.engine
- def resolve(self, host, port, family=0, callback=None):
+ @gen.coroutine
+ def resolve(self, host, port, family=0):
if is_valid_ip(host):
addresses = [host]
else:
raise Exception('Requested socket family %d but got %d' %
(family, address_family))
addrinfo.append((address_family, (address, port)))
- callback(addrinfo)
+ raise gen.Return(addrinfo)
most one result, and arguments other than ``host`` and ``family``
are ignored. It may fail to resolve when ``family`` is not
``socket.AF_UNSPEC``.
+
+ Requires Twisted 12.1 or newer.
"""
def initialize(self, io_loop=None):
self.io_loop = io_loop or IOLoop.instance()
self.resolver = twisted.names.resolve.ResolverChain(
[host_resolver, cache_resolver, real_resolver])
- @return_future
- @gen.engine
- def resolve(self, host, port, family=0, callback=None):
+ @gen.coroutine
+ def resolve(self, host, port, family=0):
# getHostByName doesn't accept IP addresses, so if the input
# looks like an IP address just return it immediately.
if twisted.internet.abstract.isIPAddress(host):
result = [
(resolved_family, (resolved, port)),
]
- self.io_loop.add_callback(callback, result)
+ raise gen.Return(result)
@unittest.skipIf(twisted is None, "twisted module not present")
+@unittest.skipIf(twisted.__version__ < "12.1", "old version of twisted")
class TwistedResolverTest(AsyncTestCase, _ResolverTestMixin):
def setUp(self):
super(TwistedResolverTest, self).setUp()
def setUp(self):
self.saved_signals = save_signal_handlers()
self.io_loop = IOLoop()
+ self.io_loop.make_current()
self.reactor = TornadoReactor(self.io_loop)
def tearDown(self):
self.reactor.disconnectAll()
+ self.io_loop.clear_current()
self.io_loop.close(all_fds=True)
restore_signal_handlers(self.saved_signals)