cohere-parse / tests /test_rate_limit.py
dennis-zhao's picture
Initialize audited Cohere Parse Space
3530326
Raw History Blame Contribute Delete
714 Bytes
from __future__ import annotations
from rate_limit import RateLimiter
def test_limits_each_key_within_window() -> None:
limiter = RateLimiter(limit=2, window_seconds=10)
assert limiter.take("client", now=0) == (True, 0)
assert limiter.take("client", now=1) == (True, 0)
allowed, retry_after = limiter.take("client", now=2)
assert not allowed
assert retry_after == 8
assert limiter.take("other-client", now=2) == (True, 0)
def test_resets_after_window() -> None:
limiter = RateLimiter(limit=1, window_seconds=10)
assert limiter.take("client", now=0) == (True, 0)
assert limiter.take("client", now=5)[0] is False
assert limiter.take("client", now=10) == (True, 0)