Ejemplo n.º 1
0
def test_callback_reset():
    'We want to restart.'

    called = False
    p_total = None
    p_processed = None
    p_downloaded = None
    p_failed = None

    def call_me(total: Optional[int], processed: int, downloaded: int,
                failed: int):
        nonlocal called, p_total, p_processed, p_downloaded, p_failed
        called = True
        p_total = total
        p_processed = processed
        p_downloaded = downloaded
        p_failed = failed

    u = _status_update_wrapper(call_me)
    u.update(processed=10)
    u.update(downloaded=2)
    u.update(failed=1)
    u.update(remaining=2)
    u.reset()
    u.update(processed=10)
    u.update(downloaded=2)
    u.update(remaining=2)
    u.broadcast()
    assert called
    assert p_total == 12
    assert p_downloaded == 2
    assert p_processed == 10
    assert p_failed == 0
Ejemplo n.º 2
0
def test_callback_everything():
    'Sometimes Servicex gets called when there is no total yet.'

    called = False
    p_total = None
    p_processed = None
    p_downloaded = None
    p_failed = None

    def call_me(total: Optional[int], processed: int, downloaded: int,
                failed: int):
        nonlocal called, p_total, p_processed, p_downloaded, p_failed
        called = True
        p_total = total
        p_processed = processed
        p_downloaded = downloaded
        p_failed = failed

    u = _status_update_wrapper(call_me)
    u.update(processed=10)
    u.update(downloaded=2)
    u.update(failed=1)
    u.update(remaining=1)
    u.broadcast()
    assert called
    assert p_total == 12
    assert p_downloaded == 2
    assert p_processed == 10
    assert p_failed == 1
Ejemplo n.º 3
0
def test_callback_none():
    'What if there is no callback?'

    u = _status_update_wrapper(None)
    u.update(processed=10)
    u.update(downloaded=3)
    u.update(remaining=12)
    u.update(failed=1)
    u.broadcast()
Ejemplo n.º 4
0
def test_callback_no_updates():
    called = False

    def call_me(total: Optional[int], processed: int, downloaded: int,
                failed: int):
        nonlocal called
        called = True

    u = _status_update_wrapper(call_me)
    u.broadcast()
Ejemplo n.º 5
0
async def test_transform_sequence():
    u = _status_update_wrapper()

    v = [
        i async for i in stream_status_updates(
            as_async_seq([(1, 0, 0), (0, 1, 0)]), u)
    ]

    assert len(v) == 2
    assert u.failed == 0
    assert u.total == 1
Ejemplo n.º 6
0
def test_callback_with_total_sequence():
    'Make sure we can del with multiple things at once'

    p_total = None

    def call_me(total: Optional[int], processed: int, downloaded: int,
                failed: int):
        nonlocal p_total
        p_total = total

    u = _status_update_wrapper(call_me)
    u.update(processed=0, remaining=6)
    u.update(processed=2, remaining=4)
    u.broadcast()
    assert p_total == 6
Ejemplo n.º 7
0
def test_callback_with_total_fluctuation():
    'Sometimes we get the total wrong..'

    p_total = None

    def call_me(total: Optional[int], processed: int, downloaded: int,
                failed: int):
        nonlocal p_total
        p_total = total

    u = _status_update_wrapper(call_me)
    u.update(processed=6, remaining=6)
    u.broadcast()
    assert p_total == 12
    u.update(processed=6, remaining=5)
    u.broadcast()
    assert p_total == 12
    u.update(processed=7, remaining=6)
    u.broadcast()
    assert p_total == 13
Ejemplo n.º 8
0
def test_callback_inc_with_nothing():
    called = False
    p_total = None
    p_processed = None
    p_downloaded = None
    p_failed = None

    def call_me(total: Optional[int], processed: int, downloaded: int,
                failed: int):
        nonlocal called, p_total, p_processed, p_downloaded, p_failed
        called = True
        p_total = total
        p_processed = processed
        p_downloaded = downloaded
        p_failed = failed

    u = _status_update_wrapper(call_me)
    u.inc(downloaded=3)
    u.broadcast()
    assert p_downloaded == 3