Прогон тестов перестаёт спать по-настоящему #3499

Merged
lekss361 merged 1 commit from fix/3471-tests-no-real-sleep into main 2026-09-12 13:36:10 +00:00

View file

@ -150,3 +150,20 @@ def pytest_sessionfinish(session, exitstatus) -> None:
)
if exitstatus == 0:
session.exitstatus = 1
# ── Никакого НАСТОЯЩЕГО сна в тестах ─────────────────────────────────────────
# Фоновый дослальщик алертов GlitchTip (#3471) спит между попытками по
# настоящим часам: три попытки по 30 секунд. `TestClient` из Starlette ждёт
# завершения background-задачи, привязанной к ответу, поэтому один-единственный
# тест на отказ доставки держал весь прогон около минуты, а в CI прогон просто
# умирал по таймауту без единой строки об ошибке.
#
# Ставим паузу в ноль для ВСЕХ тестов: проверять надо, что дослальщик вызван и
# сколько раз, а не то, что интерпретатор умеет спать. Тест, которому нужна
# настоящая пауза, переопределяет значение сам.
@pytest.fixture(autouse=True)
def _no_real_retry_sleep(monkeypatch: pytest.MonkeyPatch) -> None:
from app.tasks import glitchtip_alert_retry
monkeypatch.setattr(glitchtip_alert_retry, "_RETRY_DELAY_S", 0.0)