model used being carried thru

This commit is contained in:
John Lancaster
2026-06-29 19:04:16 -05:00
parent 9ada09accf
commit 7df687d6f5
27 changed files with 1442 additions and 210 deletions
+77 -16
View File
@@ -5,7 +5,10 @@ from uuid import UUID
import pytest
from sqlalchemy.exc import IntegrityError
from transcription.models import Document, Job, JobStatus, Transcript
from transcription.models import Document
from transcription.models import Job
from transcription.models import JobStatus
from transcription.models import Transcript
def _make_document(**overrides) -> Document:
@@ -113,7 +116,14 @@ class TestTranscriptModel:
"""A Transcript with text set and error_detail None persists correctly."""
doc = _persist_document(session)
job = _persist_job(session, doc)
transcript = Transcript(job_id=job.id, text="Dear Sir, ...")
transcript = Transcript(
job_id=job.id,
revision=0,
provider="openrouter",
model="google/gemini-2.5-flash",
prompt_name="transcribe_document.md",
text="Dear Sir, ...",
)
session.add(transcript)
session.commit()
session.refresh(transcript)
@@ -127,7 +137,14 @@ class TestTranscriptModel:
"""A Transcript with text None and error_detail set persists correctly."""
doc = _persist_document(session)
job = _persist_job(session, doc)
transcript = Transcript(job_id=job.id, error_detail="Provider timeout")
transcript = Transcript(
job_id=job.id,
revision=0,
provider="openrouter",
model="google/gemini-2.5-flash",
prompt_name="transcribe_document.md",
error_detail="Provider timeout",
)
session.add(transcript)
session.commit()
session.refresh(transcript)
@@ -137,19 +154,46 @@ class TestTranscriptModel:
assert fetched.text is None
assert fetched.error_detail == "Provider timeout"
def test_job_id_is_unique(self, session):
"""Inserting two transcripts with the same job_id raises an integrity error."""
def test_job_revision_pair_is_unique(self, session):
"""Duplicate job_id and revision combinations raise an integrity error."""
doc = _persist_document(session)
job = _persist_job(session, doc)
t1 = Transcript(job_id=job.id, text="First")
session.add(t1)
session.add(
Transcript(
job_id=job.id,
revision=0,
provider="openrouter",
model="google/gemini-2.5-flash",
prompt_name="transcribe_document.md",
text="First",
)
)
session.add(
Transcript(
job_id=job.id,
revision=1,
provider="openrouter",
model="google/gemini-2.5-flash",
prompt_name="transcribe_document.md",
text="Second",
)
)
session.commit()
t2 = Transcript(job_id=job.id, text="Duplicate")
session.add(t2)
session.add(
Transcript(
job_id=job.id,
revision=1,
provider="openrouter",
model="google/gemini-2.5-flash",
prompt_name="transcribe_document.md",
text="Duplicate",
)
)
with pytest.raises(IntegrityError):
session.commit()
session.rollback()
class TestRelationships:
@@ -165,15 +209,32 @@ class TestRelationships:
assert len(doc.jobs) == 2
assert all(isinstance(j, Job) for j in doc.jobs)
def test_job_exposes_transcript(self, session):
"""job.transcript returns the linked Transcript."""
def test_job_exposes_transcripts(self, session):
"""job.transcripts returns linked Transcript history."""
doc = _persist_document(session)
job = _persist_job(session, doc)
transcript = Transcript(job_id=job.id, text="Transcribed text")
session.add(transcript)
session.add(
Transcript(
job_id=job.id,
revision=0,
provider="openrouter",
model="google/gemini-2.5-flash",
prompt_name="transcribe_document.md",
text="Transcribed text",
)
)
session.add(
Transcript(
job_id=job.id,
revision=1,
provider="openrouter",
model="google/gemini-2.5-flash",
prompt_name="transcribe_document.md",
text="Transcribed text v2",
)
)
session.commit()
session.refresh(job)
assert job.transcript is not None
assert isinstance(job.transcript, Transcript)
assert job.transcript.text == "Transcribed text"
assert len(job.transcripts) == 2
assert all(isinstance(t, Transcript) for t in job.transcripts)