import anyio import pytest from starlette.concurrency import run_until_first_complete @pytest.mark.anyio async def test_run_until_first_complete(): task1_finished = anyio.Event() task2_finished = anyio.Event() async def task1(): task1_finished.set() async def task2(): await task1_finished.wait() await anyio.sleep(0) # pragma: nocover task2_finished.set() # pragma: nocover await run_until_first_complete((task1, {}), (task2, {})) assert task1_finished.is_set() assert not task2_finished.is_set()