]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Pass timeout argument to Future.result 936/head
authorNicolas Delaby <ticosax@free.fr>
Sun, 17 Nov 2013 18:36:28 +0000 (19:36 +0100)
committerNicolas Delaby <ticosax@free.fr>
Sun, 17 Nov 2013 18:36:28 +0000 (19:36 +0100)
tornado/concurrent.py
tornado/test/concurrent_test.py

index 8a4f22878cfe2cd2a38dec2758a1a17264156c9b..9a10905e936bd19d36e2d437d87f23981522fd98 100644 (file)
@@ -124,11 +124,11 @@ class TracebackFuture(Future):
         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):
index 854f1160ef944acc3d524cd386834b718bb686af..849337ed662f037dd5f4829e370beef84269c555 100644 (file)
@@ -28,6 +28,13 @@ from tornado.iostream import IOStream
 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):
@@ -106,6 +113,13 @@ 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()