fix: код-ревью #5 #6 #8 #9 #10 — 5 исправлений (v1.2.43)

#5 api_history: try/finally для conn/cur (как везде)
#6 stand_name: точное сравнение URL вместо substring
#8 get_real_client: удалён мёртвый алиас
#9 UNIQUE индекс idx_runs_op_uid для предотвращения гонок
#10 flock flush: f.flush() перед LOCK_UN в ротации лога
#7 (отступ scenario.py) пропущен — только косметика, риск сломать else:
This commit is contained in:
2026-08-04 08:02:08 +04:00
parent 126500a30b
commit 764592ba60
6 changed files with 21 additions and 28 deletions
-9
View File
@@ -102,15 +102,6 @@ def get_client():
return HttpClient(_cached_detect(token), token)
def get_real_client():
"""Алиас get_client() — историческая совместимость.
Раньше get_real_client() всегда ходил в реальный API (для сервисов).
Теперь в эмуляции сервисы тоже из полигона → обе функции идентичны.
Оставлено чтобы не ломать все места вызова."""
return get_client()
def get_client_id():
"""Извлечь ClientID из payload JWT-токена (base64url, без проверки подписи).
+4 -5
View File
@@ -52,12 +52,11 @@ def detect_endpoint(token):
def stand_name(endpoint):
"""Определить имя стенда по URL.
"""Определить имя стенда по URL — точное совпадение endpoint.
Ищет подстроку 'dev' или 'test' в URL.
Если не найдено — '?' (неизвестный стенд)."""
for name in ("dev", "test"):
if name in (endpoint or ""):
Возвращает 'dev'/'test' или '?' если не совпало."""
for name, url in (("dev", STANDS[0]), ("test", STANDS[1])):
if (endpoint or "").rstrip("/") == url.rstrip("/"):
return name
return "?"