Index: chrome/common/extensions/docs/server2/future_test.py |
diff --git a/chrome/common/extensions/docs/server2/future_test.py b/chrome/common/extensions/docs/server2/future_test.py |
index db056c58d54e5c48a8729b2ceacfefbecb1026b0..33c82b273b536e238bd6c392e07acc077f525822 100755 |
--- a/chrome/common/extensions/docs/server2/future_test.py |
+++ b/chrome/common/extensions/docs/server2/future_test.py |
@@ -94,12 +94,22 @@ class FutureTest(unittest.TestCase): |
callbacks = (callback_with_value(1), |
callback_with_value(2), |
MockFunction(throws_error)) |
+ |
future = All(Future(callback=callback) for callback in callbacks) |
for callback in callbacks: |
self.assertTrue(*callback.CheckAndReset(0)) |
- # Can't check that the callbacks were actually run because in theory the |
- # Futures can be resolved in any order. |
self.assertRaises(ValueError, future.Get) |
+ for callback in callbacks: |
+ # Can't check that the callbacks were actually run because in theory the |
+ # Futures can be resolved in any order. |
+ callback.CheckAndReset(0) |
+ |
+ # Test throwing an error with except_pass. |
+ future = All((Future(callback=callback) for callback in callbacks), |
+ except_pass=ValueError) |
+ for callback in callbacks: |
+ self.assertTrue(*callback.CheckAndReset(0)) |
+ self.assertEqual([1, 2, None], future.Get()) |
def testRaceSuccess(self): |
callback = MockFunction(lambda: 42) |
@@ -159,6 +169,19 @@ class FutureTest(unittest.TestCase): |
except_pass=(ValueError,)) |
self.assertRaises(ValueError, race.Get) |
+ # Test except_pass with default values. |
+ race = Race((Future(callback=throws_error), |
+ Future(callback=throws_except_error)), |
+ except_pass=(NotImplementedError,), |
+ default=42) |
+ self.assertRaises(ValueError, race.Get) |
+ |
+ race = Race((Future(callback=throws_error), |
+ Future(callback=throws_error)), |
+ except_pass=(ValueError,), |
+ default=42) |
+ self.assertEqual(42, race.Get()) |
+ |
def testThen(self): |
def assertIs42(val): |
self.assertEqual(val, 42) |