def test_callbacks(self): cbargs = [] def callback(*args): cbargs.append(args) fut = Future() fut.add_done_callback(callback) fut.add_done_callback(callback, 'foo') fut.add_done_callback(callback, 'foo', 'bar') fut.add_done_callback(callback, fut) handle = fut.add_done_callback(callback, 'baz') self.assertIsNotNone(handle) fut.remove_done_callback(handle) fut.set_result('quz') self.assertEqual(len(cbargs), 4) self.assertEqual(cbargs[0], ()) self.assertEqual(cbargs[1], ('foo',)) self.assertEqual(cbargs[2], ('foo', 'bar')) self.assertEqual(cbargs[3], (fut,))
def test_callbacks(self): cbargs = [] def callback(*args): cbargs.append(args) fut = Future() fut.add_done_callback(callback) fut.add_done_callback(callback, 'foo') fut.add_done_callback(callback, 'foo', 'bar') fut.add_done_callback(callback, fut) handle = fut.add_done_callback(callback, 'baz') self.assertIsNotNone(handle) fut.remove_done_callback(handle) fut.set_result('quz') self.assertEqual(len(cbargs), 4) self.assertEqual(cbargs[0], ()) self.assertEqual(cbargs[1], ('foo', )) self.assertEqual(cbargs[2], ('foo', 'bar')) self.assertEqual(cbargs[3], (fut, ))
def test_set_result_twice(self): fut = Future() fut.set_result('foo') self.assertEqual(fut.result(), 'foo') fut.set_result('bar') self.assertEqual(fut.result(), 'foo')
def test_result(self): fut = Future() fut.set_result(10) self.assertEqual(fut.result(), 10) self.assertIsNone(fut.exception()) self.assertEqual(fut.result(), 10)