def cb(result_flag, result_coro): global var, callback_count if (result_flag == CoroStatus.Completed): if not var: var = result_coro var = var[callback_count:] callback_count -= 1 if callback_count: run_coro(coroutine(), callback=cb)
def test_timeout_coro(): coro_id = run_coro(coroutine(5), timeout=1) result_flag, result = CoroStatus.Queued, None while result_flag == CoroStatus.Queued: result_flag, result = check_result(coro_id) assert result is None assert result_flag == CoroStatus.Timeout
def test_callback(): def cb(result_flag, result_coro): global var, callback_count if (result_flag == CoroStatus.Completed): if not var: var = result_coro var = var[callback_count:] callback_count -= 1 if callback_count: run_coro(coroutine(), callback=cb) run_coro(coroutine(), callback=cb) while callback_count: pass assert var == "World"
def test_unblocked_async_coro(): coro_id = run_coro(coroutine()) result_flag, result = CoroStatus.Queued, None while result_flag == CoroStatus.Queued: result_flag, result = check_result(coro_id) assert result == "Hello World" assert result_flag == CoroStatus.Completed
def test_coro_raise_exception(): result = run_coro(coroutine(raise_exception=True), block=True) assert result[0] == CoroStatus.CoroutineException
def test_cancel_coroutine(): coro_id = run_coro(coroutine(1)) cancel_coro(coro_id) result_flag, result = check_result(coro_id) assert result is None assert result_flag == CoroStatus.Cancelled
def test_blocked_coro(): result = run_coro(coroutine(), block=True) assert result[0] == CoroStatus.Completed assert result[1] == "Hello World"