def test_wait_exception(self): fut = Future() def set_result(): gruvi.sleep(0.1) fut.set_exception(RuntimeError) fib = gruvi.Fiber(set_result) fib.start() self.assertEqual(fut.exception(), RuntimeError)
def test_set_exception_twice(self): fut = Future() fut.set_exception(RuntimeError) self.assertEqual(fut.exception(), RuntimeError) fut.set_exception(ValueError) self.assertEqual(fut.exception(), RuntimeError)
def test_exception(self): fut = Future() fut.set_exception(ValueError()) self.assertIsInstance(fut.exception(), ValueError) self.assertRaises(ValueError, fut.result)
def test_result(self): fut = Future() fut.set_result(10) self.assertEqual(fut.result(), 10) self.assertIsNone(fut.exception()) self.assertEqual(fut.result(), 10)