Пример #1
0
async def test_run_in_custom_limiter():
    def thread_worker():
        nonlocal num_active_threads, max_active_threads
        num_active_threads += 1
        max_active_threads = max(num_active_threads, max_active_threads)
        event.wait(1)
        num_active_threads -= 1

    async def task_worker():
        await to_thread.run_sync(thread_worker, limiter=limiter)

    event = threading.Event()
    num_active_threads = max_active_threads = 0
    limiter = CapacityLimiter(3)
    async with create_task_group() as tg:
        for _ in range(4):
            tg.start_soon(task_worker)

        await sleep(0.1)
        assert num_active_threads == 3
        assert limiter.borrowed_tokens == 3
        event.set()

    assert num_active_threads == 0
    assert max_active_threads == 3
Пример #2
0
 async def test_capacitylimiter_acquire_on_behalf_of_nowait(self) -> None:
     limiter = CapacityLimiter(1)
     with pytest.deprecated_call():
         await limiter.acquire_on_behalf_of_nowait(object())
Пример #3
0
    async def test_capacitylimiter_set_total_tokens(self) -> None:
        limiter = CapacityLimiter(1)
        with pytest.deprecated_call():
            await limiter.set_total_tokens(3)

        assert limiter.total_tokens == 3
Пример #4
0
 async def test_capacitylimiter_acquire_nowait(self):
     limiter = CapacityLimiter(1)
     with pytest.deprecated_call():
         await limiter.acquire_nowait()