Example #1
0
def test_promise_all():
    p = Promise.all([])
    assert p.is_resolved
    assert p.value == []

    p = Promise.all({})
    assert p.is_resolved
    assert p.value == {}

    p = Promise.all([
        Promise.resolved(1),
        Promise.resolved(2),
        Promise.resolved(3),
    ])

    assert p.is_resolved
    assert p.value == [1, 2, 3]

    p = Promise.all({
        'key1': Promise.resolved(1),
        'key2': Promise.resolved(2),
        'key3': Promise.resolved(3),
    })

    assert p.is_resolved
    assert p.value == {'key1': 1, 'key2': 2, 'key3': 3}

    p = Promise.all([
        Promise.resolved(1),
        Promise.rejected(2),
        Promise.resolved(3),
    ])
    assert p.is_rejected
    assert p.reason == 2
Example #2
0
def test_rejected_promise():
    err = RuntimeError('So fail')
    p = Promise.rejected(err)
    assert not p.is_resolved
    assert not p.is_pending
    assert p.is_rejected
    assert p.reason == err
Example #3
0
def test_promise_all():
    p = Promise.all([])
    assert p.is_resolved
    assert p.value == []

    p = Promise.all({})
    assert p.is_resolved
    assert p.value == {}

    p = Promise.all([
        Promise.resolved(1),
        Promise.resolved(2),
        Promise.resolved(3),
    ])

    assert p.is_resolved
    assert p.value == [1, 2, 3]

    p = Promise.all({
        "key1": Promise.resolved(1),
        "key2": Promise.resolved(2),
        "key3": Promise.resolved(3),
    })

    assert p.is_resolved
    assert p.value == {"key1": 1, "key2": 2, "key3": 3}

    p = Promise.all([
        Promise.resolved(1),
        Promise.rejected(2),
        Promise.resolved(3),
    ])
    assert p.is_rejected
    assert p.reason == 2
Example #4
0
def test_failure_callbacks():
    results = []

    p = Promise()
    assert p.is_pending
    p.done(on_failure=results.append)

    assert results == []
    p.reject(42)
    assert results == [42]

    p = Promise.rejected(23)
    p.done(on_failure=results.append)

    assert results == [42, 23]