1
0
Fork 0

refactor: some minor cleanup

This commit is contained in:
Arthur K. 2026-03-02 19:33:43 +03:00
parent 6dd26ad3d8
commit 0a71012709
Signed by: wzray
GPG key ID: B97F30FDC4636357
15 changed files with 188 additions and 91 deletions

View file

@ -3,6 +3,7 @@ import json
import server
from providers.base import Provider, ProviderTokens
from utils.env import parse_int_env
class FakeRequest:
@ -25,9 +26,17 @@ class FakeProvider(Provider):
"secondary_window": None,
}
self._rotate = rotate
self._prepare_threshold = 80
self.get_token_calls = 0
self.standby_calls = 0
@property
def prepare_threshold(self) -> int:
return self._prepare_threshold
def should_prepare_standby(self, usage_percent: int) -> bool:
return usage_percent >= self.prepare_threshold
@property
def name(self) -> str:
return "fake"
@ -54,9 +63,10 @@ class FakeProvider(Provider):
return self._rotate
async def ensure_standby_account(
self, usage_percent: int, prepare_threshold: int
self,
usage_percent: int,
) -> None:
_ = usage_percent, prepare_threshold
_ = usage_percent
self.standby_calls += 1
@ -66,17 +76,17 @@ def _response_json(resp) -> dict:
def test_parse_int_env_defaults(monkeypatch):
monkeypatch.delenv("X_TEST", raising=False)
assert server._parse_int_env("X_TEST", 10, 1, 20) == 10
assert parse_int_env("X_TEST", 10, 1, 20) == 10
def test_parse_int_env_invalid(monkeypatch):
monkeypatch.setenv("X_TEST", "abc")
assert server._parse_int_env("X_TEST", 10, 1, 20) == 10
assert parse_int_env("X_TEST", 10, 1, 20) == 10
def test_parse_int_env_out_of_range(monkeypatch):
monkeypatch.setenv("X_TEST", "999")
assert server._parse_int_env("X_TEST", 10, 1, 20) == 10
assert parse_int_env("X_TEST", 10, 1, 20) == 10
def test_build_limit_fields():
@ -90,7 +100,10 @@ def test_build_limit_fields():
def test_get_prepare_threshold():
assert server.get_prepare_threshold("chatgpt") == server.CHATGPT_PREPARE_THRESHOLD
assert (
server.get_prepare_threshold("chatgpt")
== server.PROVIDERS["chatgpt"].prepare_threshold
)
assert server.get_prepare_threshold("unknown") == 100
@ -100,12 +113,16 @@ def test_token_handler_unknown_provider(monkeypatch):
assert resp.status == 404
def test_health_handler_ok():
resp = asyncio.run(server.health_handler(object()))
assert resp.status == 200
assert resp.text == "ok"
def test_token_handler_success(monkeypatch):
provider = FakeProvider()
monkeypatch.setattr(server, "PROVIDERS", {"fake": provider})
monkeypatch.setattr(server, "background_tasks", {"fake": None})
monkeypatch.setattr(server, "get_prepare_threshold", lambda _: 80)
resp = asyncio.run(server.token_handler(FakeRequest("fake")))
data = _response_json(resp)
@ -124,10 +141,9 @@ def test_token_handler_triggers_standby(monkeypatch):
def fake_trigger(name, usage_percent, reason):
assert name == "fake"
assert usage_percent == 90
assert "threshold" in reason
assert "standby policy" in reason
called["value"] = True
monkeypatch.setattr(server, "get_prepare_threshold", lambda _: 80)
monkeypatch.setattr(server, "trigger_standby_prepare", fake_trigger)
resp = asyncio.run(server.token_handler(FakeRequest("fake")))
@ -142,7 +158,6 @@ def test_token_handler_rotation_path(monkeypatch):
)
monkeypatch.setattr(server, "PROVIDERS", {"fake": provider})
monkeypatch.setattr(server, "background_tasks", {"fake": None})
monkeypatch.setattr(server, "get_prepare_threshold", lambda _: 80)
monkeypatch.setattr(server, "trigger_standby_prepare", lambda *_: None)
resp = asyncio.run(server.token_handler(FakeRequest("fake")))