V4.10
Quality Gate / gate (push) Failing after 11s

This commit is contained in:
Jim Lancaster
2026-08-22 10:19:30 -05:00
parent bf2f3ac09c
commit cf49c3c127
35 changed files with 1029 additions and 161 deletions
+48
View File
@@ -1,5 +1,7 @@
"""Tests for the sources page routes and Source model properties."""
from datetime import UTC
from datetime import datetime
from pathlib import Path
from uuid import uuid4
@@ -10,6 +12,7 @@ from transcription.db import session_scope
from transcription.db.loading import orm_attribute
from transcription.db.loading import selectinload
from transcription.db.models import Document
from transcription.db.models import ExecutionAttempt
from transcription.db.models import Job
from transcription.db.models import JobSource
from transcription.db.models import JobSourceStatus
@@ -71,6 +74,51 @@ class TestSourceModelProperties:
assert source.latest_error_detail == "Timeout during OCR parsing"
assert source.latest_job_source is not None
@pytest.mark.asyncio
async def test_latest_error_detail_ignores_older_failures_when_latest_attempt_succeeds(self):
source = Source(
document_id=uuid4(),
page_number=1,
upload_name="page_one.png",
filename="stored_page_one.png",
file_path="/tmp/stored_page_one.png",
file_hash="b" * 64,
file_size_bytes=1,
)
job_source = JobSource(
job_id=uuid4(),
source_id=source.id,
status=JobSourceStatus.TRANSCRIBED,
)
failed_attempt = ExecutionAttempt(
job_source_id=job_source.id,
job_id=job_source.job_id,
source_id=source.id,
attempt_number=1,
status=JobSourceStatus.FAILED,
provider="openrouter",
error_detail="Provider timeout",
started_at=datetime.now(UTC),
finished_at=datetime.now(UTC),
duration_ms=10,
)
successful_attempt = ExecutionAttempt(
job_source_id=job_source.id,
job_id=job_source.job_id,
source_id=source.id,
attempt_number=2,
status=JobSourceStatus.TRANSCRIBED,
provider="openrouter",
error_detail=None,
started_at=datetime.now(UTC),
finished_at=datetime.now(UTC),
duration_ms=10,
)
job_source.execution_attempts = [failed_attempt, successful_attempt]
source.job_sources = [job_source]
assert source.latest_error_detail is None
# --- Integration Tests for Page Rendering ---