.. versionchanged:: 5.1
Returns a `.Future` compatible with ``await`` instead of a
`concurrent.futures.Future`.
+
+ .. deprecated:: 5.1
+
+ The ``callback`` argument is deprecated and will be removed in
+ 6.0. The decorator itself is discouraged in new code but will
+ not be removed in 6.0.
"""
def run_on_executor_decorator(fn):
executor = kwargs.get("executor", "executor")
conc_future = getattr(self, executor).submit(fn, self, *args, **kwargs)
chain_future(conc_future, async_future)
if callback:
+ warnings.warn("callback arguments are deprecated, use the returned Future instead",
+ DeprecationWarning)
from tornado.ioloop import IOLoop
IOLoop.current().add_future(
async_future, lambda future: callback(future.result()))
)
from tornado.stack_context import ExceptionStackContext
from tornado.testing import AsyncTestCase, gen_test, bind_unused_port
-from tornado.test.util import unittest, skipIfNoNetwork
+from tornado.test.util import unittest, skipIfNoNetwork, ignore_deprecation
try:
from concurrent import futures
class _ResolverTestMixin(object):
def test_localhost(self):
- self.resolver.resolve('localhost', 80, callback=self.stop)
+ with ignore_deprecation():
+ self.resolver.resolve('localhost', 80, callback=self.stop)
result = self.wait()
self.assertIn((socket.AF_INET, ('127.0.0.1', 80)), result)
return True # Halt propagation.
with ExceptionStackContext(handler):
- self.resolver.resolve('an invalid domain', 80, callback=self.stop)
+ with ignore_deprecation():
+ self.resolver.resolve('an invalid domain', 80, callback=self.stop)
result = self.wait()
self.assertIsInstance(result, Exception)
}
self.resolver = OverrideResolver(BlockingResolver(), mapping)
+ @gen_test
def test_resolve_multiaddr(self):
- self.resolver.resolve('google.com', 80, socket.AF_INET, callback=self.stop)
- result = self.wait()
+ result = yield self.resolver.resolve('google.com', 80, socket.AF_INET)
self.assertIn((socket.AF_INET, ('1.2.3.4', 80)), result)
- self.resolver.resolve('google.com', 80, socket.AF_INET6, callback=self.stop)
- result = self.wait()
+ result = yield self.resolver.resolve('google.com', 80, socket.AF_INET6)
self.assertIn((socket.AF_INET6, ('2a02:6b8:7c:40c:c51e:495f:e23a:3', 80, 0, 0)), result)