Пример #1
0
def test_dict_promise_when():
    p1 = Promise()
    p2 = Promise()
    d = {"a": p1, "b": p2}
    pd1 = dictPromise(d)
    pd2 = dictPromise({"a": p1})
    pd3 = dictPromise({})
    assert p1.isPending
    assert p2.isPending
    assert pd1.isPending
    assert pd2.isPending
    assert pd3.isFulfilled
    p1.fulfill(5)
    assert p1.isFulfilled
    assert p2.isPending
    assert pd1.isPending
    assert pd2.isFulfilled
    p2.fulfill(10)
    assert p1.isFulfilled
    assert p2.isFulfilled
    assert pd1.isFulfilled
    assert pd2.isFulfilled
    assert_equals(5, p1.value)
    assert_equals(10, p2.value)
    assert_equals(5, pd1.value["a"])
    assert_equals(5, pd2.value["a"])
    assert_equals(10, pd1.value["b"])
    assert_equals({}, pd3.value)
Пример #2
0
def promisify(value):
    # TODO, support futures etc..
    if isinstance(value, aplus.Promise):
        return value
    if isinstance(value, (list, tuple)):
        return aplus.listPromise(*list([promisify(k) for k in value]))
    if isinstance(value, dict):
        return aplus.dictPromise({k: promisify(v) for k, v in value.items()})
    else:
        return aplus.Promise.fulfilled(value)
Пример #3
0
def test_dict_promise_if():
    p1 = Promise()
    p2 = Promise()
    d = {"a": p1, "b": p2}
    pd = dictPromise(d)
    assert p1.isPending()
    assert p2.isPending()
    assert pd.isPending()
    p1.fulfill(5)
    assert p1.isFulfilled()
    assert p2.isPending()
    assert pd.isPending()
    p2.fulfill(10)
    assert p1.isFulfilled()
    assert p2.isFulfilled()
    assert pd.isFulfilled()
    assert_equals(5, p1.value)
    assert_equals(10, p2.value)
    assert_equals(5, pd.value["a"])
    assert_equals(10, pd.value["b"])
Пример #4
0
def test_dict_promise_if():
    p1 = Promise()
    p2 = Promise()
    d = {"a": p1, "b": p2}
    pd = dictPromise(d)
    assert p1.isPending
    assert p2.isPending
    assert pd.isPending
    p1.fulfill(5)
    assert p1.isFulfilled
    assert p2.isPending
    assert pd.isPending
    p2.fulfill(10)
    assert p1.isFulfilled
    assert p2.isFulfilled
    assert pd.isFulfilled
    assert_equals(5, p1.value)
    assert_equals(10, p2.value)
    assert_equals(5, pd.value["a"])
    assert_equals(10, pd.value["b"])