self.__exc_info = exc_info
self.set_exception(exc_info[1])
- def result(self):
+ def result(self, timeout=None):
if self.__exc_info is not None:
raise_exc_info(self.__exc_info)
else:
- return super(TracebackFuture, self).result()
+ return super(TracebackFuture, self).result(timeout=timeout)
class DummyExecutor(object):
from tornado import stack_context
from tornado.tcpserver import TCPServer
from tornado.testing import AsyncTestCase, LogTrapTestCase, bind_unused_port, gen_test
+from tornado.test.util import unittest
+
+
+try:
+ from concurrent import futures
+except ImportError:
+ futures = None
class ReturnFutureTest(AsyncTestCase):
self.assertIs(future, future2)
self.assertEqual(future.result(), 42)
+ @unittest.skipIf(futures is None, "futures module not present")
+ def test_timeout_future(self):
+ with self.assertRaises(futures.TimeoutError):
+ future = self.async_future()
+ # Do not call self.wait()
+ future.result(timeout=.1)
+
@gen_test
def test_async_future_gen(self):
result = yield self.async_future()