RandomZ / app /tests /test_multi_section_status.py
StormShadow308's picture
feat: async pipeline, job queue, generation hardening, and docs
732b14f
Raw
History Blame Contribute Delete
1.3 kB
"""Multi-section report status finalization."""
from __future__ import annotations
from unittest.mock import MagicMock
import pytest
from app.db.models import ReportStatus
from app.services.generation import (
_finalize_multi_section_report,
validate_section_codes,
)
def test_finalize_all_failed() -> None:
report = MagicMock()
report.error_message = None
_finalize_multi_section_report(
report, failure_count=3, total=3, phase="generate"
)
assert report.status == ReportStatus.failed
def test_finalize_partial() -> None:
report = MagicMock()
report.error_message = None
_finalize_multi_section_report(
report, failure_count=1, total=4, phase="proofread"
)
assert report.status == ReportStatus.partial
assert "1 of 4" in (report.error_message or "")
def test_validate_section_codes_rejects_unknown() -> None:
with pytest.raises(ValueError, match="Unknown section"):
validate_section_codes(["D", "NOT_A_REAL_SECTION"])
def test_finalize_complete() -> None:
report = MagicMock()
report.error_message = "old"
_finalize_multi_section_report(
report, failure_count=0, total=2, phase="enhance"
)
assert report.status == ReportStatus.complete
assert report.error_message is None