"""Generation status must never remain stuck on ``generating``.""" from __future__ import annotations from unittest.mock import AsyncMock, MagicMock, patch import pytest from app.services.generation import finalize_generation_status_if_stuck, run_generation @pytest.mark.asyncio async def test_run_generation_finally_clears_stuck_generating() -> None: marked: list[str] = [] async def _stuck_finalize(rid: str, tid: str, **kwargs) -> None: marked.append("finalize") async def _body(**kwargs) -> None: return None with ( patch("app.services.generation._run_generation_body", side_effect=_body), patch( "app.services.generation.finalize_generation_status_if_stuck", side_effect=_stuck_finalize, ), ): await run_generation( report_id="r1", tenant_id="tenant-a", template_id="D", bullets=["note"], ) assert marked == ["finalize"]