Files
devplacepy/tests/unit/services/openai_gateway/auth_throttle.py
T
retoor cae139ead9 Add personal notes, DeepSearch history, backup offload, and gateway auth throttling
Also streamline the top navigation: drop the Tools dropdown, make Quizzes
and Battles icon-only entries, and remove the Workspace, Containers and
Editor entry points from the project detail page.
2026-09-12 20:32:31 +02:00

70 lines
2.0 KiB
Python

# retoor <retoor@molodetz.nl>
from devplacepy.services.openai_gateway import auth_throttle
def test_is_throttled_false_below_threshold():
auth_throttle.clear()
try:
for _ in range(9):
auth_throttle.record_failure("1.1.1.1", 60)
assert auth_throttle.is_throttled("1.1.1.1", 10, 60) is False
finally:
auth_throttle.clear()
def test_is_throttled_true_at_threshold():
auth_throttle.clear()
try:
for _ in range(10):
auth_throttle.record_failure("2.2.2.2", 60)
assert auth_throttle.is_throttled("2.2.2.2", 10, 60) is True
finally:
auth_throttle.clear()
def test_is_throttled_scoped_per_ip():
auth_throttle.clear()
try:
for _ in range(10):
auth_throttle.record_failure("3.3.3.3", 60)
assert auth_throttle.is_throttled("3.3.3.3", 10, 60) is True
assert auth_throttle.is_throttled("4.4.4.4", 10, 60) is False
finally:
auth_throttle.clear()
def test_record_failure_returns_running_count():
auth_throttle.clear()
try:
assert auth_throttle.record_failure("5.5.5.5", 60) == 1
assert auth_throttle.record_failure("5.5.5.5", 60) == 2
assert auth_throttle.record_failure("5.5.5.5", 60) == 3
finally:
auth_throttle.clear()
def test_throttle_resets_after_window_passes(monkeypatch):
auth_throttle.clear()
try:
now = [1000.0]
monkeypatch.setattr(auth_throttle.time, "time", lambda: now[0])
for _ in range(10):
auth_throttle.record_failure("6.6.6.6", 60)
assert auth_throttle.is_throttled("6.6.6.6", 10, 60) is True
now[0] += 61
assert auth_throttle.is_throttled("6.6.6.6", 10, 60) is False
finally:
auth_throttle.clear()
def test_reset_clears_one_ip():
auth_throttle.clear()
try:
for _ in range(10):
auth_throttle.record_failure("7.7.7.7", 60)
auth_throttle.reset("7.7.7.7")
assert auth_throttle.is_throttled("7.7.7.7", 10, 60) is False
finally:
auth_throttle.clear()