def test_then_all(): p = Promise() handlers = [ ((lambda x: x * x), (lambda r: 1)), {'success': (lambda x: x + x), 'failure': (lambda r: 2)}, ] results = p.then_all() + p.then_all(((lambda x: x * x), (lambda r: 1))) + p.then_all(handlers) p.fulfill(4) assert_equals(results[0].value, 16) assert_equals(results[1].value, 16) assert_equals(results[2].value, 8) p = Promise() handlers = [ ((lambda x: x * x), (lambda r: 1)), {'success': (lambda x: x + x), 'failure': (lambda r: 2)}, ] results = p.then_all() + p.then_all(((lambda x: x * x), (lambda r: 1))) + p.then_all(handlers) p.reject(Exception()) assert_equals(results[0].value, 1) assert_equals(results[1].value, 1) assert_equals(results[2].value, 2)