2026-10-12 16:25:32 +08:00
|
|
|
from app.engine.services.rate_limit import check, _reset_for_test
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_allows_under_cap():
|
|
|
|
|
_reset_for_test()
|
|
|
|
|
for _ in range(30):
|
2026-10-12 21:37:48 +08:00
|
|
|
assert check("t1", "1.2.3.4", "dev1") is True
|
2026-10-12 16:25:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_blocks_over_cap():
|
|
|
|
|
_reset_for_test()
|
|
|
|
|
for _ in range(30):
|
2026-10-12 21:37:48 +08:00
|
|
|
assert check("t1", "1.2.3.4", "dev1") is True
|
|
|
|
|
assert check("t1", "1.2.3.4", "dev1") is False
|
2026-10-12 16:25:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_isolated_buckets():
|
|
|
|
|
_reset_for_test()
|
|
|
|
|
for _ in range(30):
|
2026-10-12 21:37:48 +08:00
|
|
|
check("t1", "1.2.3.4", "dev1")
|
|
|
|
|
assert check("t1", "5.6.7.8", "dev2") is True # different ip+device unaffected
|