python-learning/rate_limiters/tests/test_fixed_window.py

21 lines
536 B
Python
Raw Normal View History

import pytest
from fixed_window import FixedWindowLimiter
def test_limit_respected():
limiter = FixedWindowLimiter(10, 10)
try:
for i in range(9):
with limiter:
pass
except RuntimeError as e:
assert False, f"Limiter raised an exception -> {e}"
def test_limit_enforced():
limiter = FixedWindowLimiter(10, 10)
with pytest.raises(RuntimeError) as e:
for i in range(11):
with limiter:
pass
assert "Rate exceeded" in str(e.value)