diff --git a/backend/tests/ops/test_3078_alert_ack.py b/backend/tests/ops/test_3078_alert_ack.py index 70568523..58f3d471 100644 --- a/backend/tests/ops/test_3078_alert_ack.py +++ b/backend/tests/ops/test_3078_alert_ack.py @@ -68,25 +68,25 @@ def app(monkeypatch: pytest.MonkeyPatch) -> ModuleType: sent.append((method, payload)) return {"ok": True, "result": {"message_id": 1000 + len(sent)}} - mod._tg = fake_tg # noqa: SLF001 — единственный шов, ради него тест и существует + mod._tg = fake_tg # единственный шов, ради него тест и существует mod.sent = sent - mod._PENDING.clear() # noqa: SLF001 + mod._PENDING.clear() return mod def test_gorjaschiy_incident_uhodit_s_knopkoy(app: ModuleType) -> None: """У горящего инцидента есть кнопка со ссылкой и живой токен.""" - app._send_alert(FIRING) # noqa: SLF001 + app._send_alert(FIRING) method, payload = app.sent[0] assert method == "sendMessage" assert "reply_markup" in payload, "кнопка не прицеплена" assert "/ack/" in payload["reply_markup"], "в кнопке нет ссылки подтверждения" - assert len(app._PENDING) == 1, "токен не сохранён — нажатие будет некуда деть" # noqa: SLF001 + assert len(app._PENDING) == 1, "токен не сохранён — нажатие будет некуда деть" def test_soobschenie_adresovano_v_temu_i_zovyot_dezhurnogo(app: ModuleType) -> None: """Тема форума и упоминание — обе вещи, которые молча теряются.""" - app._send_alert(FIRING) # noqa: SLF001 + app._send_alert(FIRING) _, payload = app.sent[0] assert payload.get("message_thread_id") == "158", "уйдёт в общую тему форума" assert "@leks361" in payload["text"], "дежурного не позвали" @@ -95,10 +95,10 @@ def test_soobschenie_adresovano_v_temu_i_zovyot_dezhurnogo(app: ModuleType) -> N def test_vosstanovlenie_bez_knopki(app: ModuleType) -> None: """У «восстановлено» подтверждать нечего — кнопки быть не должно.""" - app._send_alert(RESOLVED) # noqa: SLF001 + app._send_alert(RESOLVED) _, payload = app.sent[0] assert "reply_markup" not in payload - assert not app._PENDING, "токен выдан там, где кнопки нет" # noqa: SLF001 + assert not app._PENDING, "токен выдан там, где кнопки нет" def test_esli_knopka_ne_prikrepilas_soobschenie_vsyo_ravno_uhodit( @@ -117,7 +117,7 @@ def test_esli_knopka_ne_prikrepilas_soobschenie_vsyo_ravno_uhodit( return None if "reply_markup" in payload else {"ok": True, "result": {"message_id": 7}} monkeypatch.setattr(app, "_tg", flaky) - app._send_alert(FIRING) # noqa: SLF001 + app._send_alert(FIRING) assert len(calls) == 2, "не было повтора без кнопки — алерт потерян" assert "reply_markup" not in calls[1] assert calls[1]["text"] == calls[0]["text"], "во второй попытке потерялся текст" @@ -125,8 +125,8 @@ def test_esli_knopka_ne_prikrepilas_soobschenie_vsyo_ravno_uhodit( def test_nazhatie_otvechaet_v_temu_i_snimaet_knopku(app: ModuleType) -> None: """Нажатие: ответ в тему + снятие клавиатуры у исходного сообщения.""" - app._send_alert(FIRING) # noqa: SLF001 - token = next(iter(app._PENDING)) # noqa: SLF001 + app._send_alert(FIRING) + token = next(iter(app._PENDING)) app.sent.clear() code, page = app.do_ack(token) @@ -143,8 +143,8 @@ def test_nazhatie_otvechaet_v_temu_i_snimaet_knopku(app: ModuleType) -> None: def test_povtornoe_nazhatie_ne_shlyot_vtoroy_raz(app: ModuleType) -> None: """Идемпотентность: ссылка живёт сутки, по ней кликнут дважды.""" - app._send_alert(FIRING) # noqa: SLF001 - token = next(iter(app._PENDING)) # noqa: SLF001 + app._send_alert(FIRING) + token = next(iter(app._PENDING)) app.do_ack(token) app.sent.clear() @@ -164,16 +164,16 @@ def test_neizvestnyy_token_nichego_ne_rasskazyvaet(app: ModuleType) -> None: def test_token_dostatochno_dlinnyy(app: ModuleType) -> None: """Ссылка защищена только неугадываемостью — длина токена и есть защита.""" - app._send_alert(FIRING) # noqa: SLF001 - token = next(iter(app._PENDING)) # noqa: SLF001 + app._send_alert(FIRING) + token = next(iter(app._PENDING)) assert len(token) >= 20, f"слишком короткий токен: {len(token)} символов" def test_protuhshiy_token_ne_prinimaetsya(app: ModuleType, monkeypatch: pytest.MonkeyPatch) -> None: """По истечении срока ссылка мертва — иначе она копится вечно.""" - app._send_alert(FIRING) # noqa: SLF001 - token = next(iter(app._PENDING)) # noqa: SLF001 - app._PENDING[token]["created"] -= app.TTL_SEC + 1 # noqa: SLF001 + app._send_alert(FIRING) + token = next(iter(app._PENDING)) + app._PENDING[token]["created"] -= app.TTL_SEC + 1 app.sent.clear() code, _ = app.do_ack(token)