Index: mojo/python/tests/promise_unittest.py |
diff --git a/mojo/python/tests/promise_unittest.py b/mojo/python/tests/promise_unittest.py |
deleted file mode 100644 |
index 44427ba91c85cf061d57ecdccaaf38000b1eab40..0000000000000000000000000000000000000000 |
--- a/mojo/python/tests/promise_unittest.py |
+++ /dev/null |
@@ -1,181 +0,0 @@ |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import unittest |
- |
-# pylint: disable=F0401 |
-from mojo.bindings import promise |
- |
- |
-class PromiseTest(unittest.TestCase): |
- |
- def setUp(self): |
- self.accumulated = [] |
- |
- def _AddToAccumulated(self, res): |
- self.accumulated.append(res) |
- return res |
- |
- def testResolve(self): |
- p = promise.Promise.Resolve(0) |
- self.assertEquals(p.state, promise.Promise.STATE_FULLFILLED) |
- p.Then(self._AddToAccumulated) |
- self.assertEquals(self.accumulated, [0]) |
- |
- def testResolveToPromise(self): |
- p = promise.Promise.Resolve(0) |
- self.assertEquals(p.state, promise.Promise.STATE_FULLFILLED) |
- q = promise.Promise.Resolve(p) |
- self.assertEquals(p.state, promise.Promise.STATE_FULLFILLED) |
- q.Then(self._AddToAccumulated) |
- self.assertEquals(self.accumulated, [0]) |
- |
- def testReject(self): |
- p = promise.Promise.Reject(0) |
- self.assertEquals(p.state, promise.Promise.STATE_REJECTED) |
- p.Then(onRejected=self._AddToAccumulated) |
- self.assertEquals(self.accumulated, [0]) |
- |
- def testGeneratorFunctionResolve(self): |
- (p, resolve, _) = _GetPromiseAndFunctions() |
- self.assertEquals(p.state, promise.Promise.STATE_PENDING) |
- p.Then(self._AddToAccumulated) |
- resolve(0) |
- self.assertEquals(p.state, promise.Promise.STATE_FULLFILLED) |
- self.assertEquals(self.accumulated, [0]) |
- |
- def testGeneratorFunctionReject(self): |
- (p, _, reject) = _GetPromiseAndFunctions() |
- self.assertEquals(p.state, promise.Promise.STATE_PENDING) |
- p.Then(None, self._AddToAccumulated) |
- reject(0) |
- self.assertEquals(p.state, promise.Promise.STATE_REJECTED) |
- self.assertEquals(self.accumulated, [0]) |
- |
- def testGeneratorFunctionResolveToPromise(self): |
- (p1, resolve, _) = _GetPromiseAndFunctions() |
- p2 = promise.Promise(lambda x, y: x(p1)) |
- self.assertEquals(p2.state, promise.Promise.STATE_PENDING) |
- p2.Then(self._AddToAccumulated) |
- resolve(promise.Promise.Resolve(0)) |
- self.assertEquals(self.accumulated, [0]) |
- |
- def testComputation(self): |
- (p, resolve, _) = _GetPromiseAndFunctions() |
- p.Then(lambda x: x+1).Then(lambda x: x+2).Then(self._AddToAccumulated) |
- self.assertEquals(self.accumulated, []) |
- resolve(0) |
- self.assertEquals(self.accumulated, [3]) |
- |
- def testRecoverAfterException(self): |
- (p, resolve, _) = _GetPromiseAndFunctions() |
- p.Then(_ThrowException).Catch(self._AddToAccumulated) |
- self.assertEquals(self.accumulated, []) |
- resolve(0) |
- self.assertEquals(len(self.accumulated), 1) |
- self.assertIsInstance(self.accumulated[0], RuntimeError) |
- self.assertEquals(self.accumulated[0].message, 0) |
- |
- def testMultipleRejectResolve(self): |
- (p, resolve, reject) = _GetPromiseAndFunctions() |
- p.Then(self._AddToAccumulated, self._AddToAccumulated) |
- resolve(0) |
- self.assertEquals(self.accumulated, [0]) |
- resolve(0) |
- self.assertEquals(self.accumulated, [0]) |
- reject(0) |
- self.assertEquals(self.accumulated, [0]) |
- |
- self.accumulated = [] |
- (p, resolve, reject) = _GetPromiseAndFunctions() |
- p.Then(self._AddToAccumulated, self._AddToAccumulated) |
- reject(0) |
- self.assertEquals(self.accumulated, [0]) |
- resolve(0) |
- self.assertEquals(self.accumulated, [0]) |
- reject(0) |
- self.assertEquals(self.accumulated, [0]) |
- |
- def testAll(self): |
- promises_and_functions = [_GetPromiseAndFunctions() for x in xrange(10)] |
- promises = [x[0] for x in promises_and_functions] |
- all_promise = promise.Promise.All(*promises) |
- res = [] |
- def AddToRes(values): |
- res.append(values) |
- all_promise.Then(AddToRes, AddToRes) |
- for i, (_, resolve, _) in enumerate(promises_and_functions): |
- self.assertEquals(len(res), 0) |
- resolve(i) |
- self.assertEquals(len(res), 1) |
- self.assertEquals(res[0], [i for i in xrange(10)]) |
- self.assertEquals(all_promise.state, promise.Promise.STATE_FULLFILLED) |
- |
- def testAllFailure(self): |
- promises_and_functions = [_GetPromiseAndFunctions() for x in xrange(10)] |
- promises = [x[0] for x in promises_and_functions] |
- all_promise = promise.Promise.All(*promises) |
- res = [] |
- def AddToRes(values): |
- res.append(values) |
- all_promise.Then(AddToRes, AddToRes) |
- for i in xrange(10): |
- if i <= 5: |
- self.assertEquals(len(res), 0) |
- else: |
- self.assertEquals(len(res), 1) |
- if i != 5: |
- promises_and_functions[i][1](i) |
- else: |
- promises_and_functions[i][2]('error') |
- self.assertEquals(len(res), 1) |
- self.assertEquals(res[0], 'error') |
- self.assertEquals(all_promise.state, promise.Promise.STATE_REJECTED) |
- |
- def testRace(self): |
- promises_and_functions = [_GetPromiseAndFunctions() for x in xrange(10)] |
- promises = [x[0] for x in promises_and_functions] |
- race_promise = promise.Promise.Race(*promises) |
- res = [] |
- def AddToRes(values): |
- res.append(values) |
- race_promise.Then(AddToRes, AddToRes) |
- self.assertEquals(len(res), 0) |
- promises_and_functions[7][1]('success') |
- self.assertEquals(len(res), 1) |
- for i, (f) in enumerate(promises_and_functions): |
- f[1 + (i % 2)](i) |
- self.assertEquals(len(res), 1) |
- self.assertEquals(res[0], 'success') |
- self.assertEquals(race_promise.state, promise.Promise.STATE_FULLFILLED) |
- |
- def testRaceFailure(self): |
- promises_and_functions = [_GetPromiseAndFunctions() for x in xrange(10)] |
- promises = [x[0] for x in promises_and_functions] |
- race_promise = promise.Promise.Race(*promises) |
- res = [] |
- def AddToRes(values): |
- res.append(values) |
- race_promise.Then(AddToRes, AddToRes) |
- self.assertEquals(len(res), 0) |
- promises_and_functions[7][2]('error') |
- self.assertEquals(len(res), 1) |
- for i, (f) in enumerate(promises_and_functions): |
- f[1 + (i % 2)](i) |
- self.assertEquals(len(res), 1) |
- self.assertEquals(res[0], 'error') |
- self.assertEquals(race_promise.state, promise.Promise.STATE_REJECTED) |
- |
- |
-def _GetPromiseAndFunctions(): |
- functions = {} |
- def GeneratorFunction(resolve, reject): |
- functions['resolve'] = resolve |
- functions['reject'] = reject |
- p = promise.Promise(GeneratorFunction) |
- return (p, functions['resolve'], functions['reject']) |
- |
- |
-def _ThrowException(x): |
- raise RuntimeError(x) |