Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
File size: 714 Bytes
3530326 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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)
|