generated from john/python-template
V3 step 1 update models.py and step 2 implement service/worker, and raw API response persistence
This commit is contained in:
@@ -46,7 +46,13 @@ class TestPipelineSuccessFlow:
|
||||
self, async_session, default_session_factory, tmp_path: Path, monkeypatch
|
||||
):
|
||||
"""Upload followed by worker processing persists job transcription and transcribed status."""
|
||||
settings = Settings(openrouter_api_key="test-key", upload_dir=tmp_path)
|
||||
settings = Settings(
|
||||
openrouter_api_key="test-key",
|
||||
upload_dir=tmp_path,
|
||||
default_prompt_name="transcribe_document.md",
|
||||
transcription_temperature=0.2,
|
||||
transcription_top_p=0.85,
|
||||
)
|
||||
upload_result = await create_upload_job(
|
||||
filename="pipeline.jpg",
|
||||
file_bytes=b"pipeline-bytes",
|
||||
@@ -89,13 +95,17 @@ class TestPipelineSuccessFlow:
|
||||
queued_job = await services.jobs.read_job(job_id=upload_result.job_id, session=async_session)
|
||||
processed = queued_job is not None
|
||||
if queued_job is not None:
|
||||
await advance_job(job=queued_job, services=services, session=async_session)
|
||||
await advance_job(job=queued_job, services=services, settings=settings, session=async_session)
|
||||
job = await services.jobs.read_job(job_id=upload_result.job_id, session=async_session)
|
||||
|
||||
assert processed is True
|
||||
assert job is not None
|
||||
assert job.status == JobStatus.TRANSCRIBED
|
||||
assert any(job_source.raw_transcription == "Pipeline transcript" for job_source in job.job_sources)
|
||||
assert any(job_source.prompt_name == "transcribe_document.md" for job_source in job.job_sources)
|
||||
assert any(job_source.user_prompt is not None for job_source in job.job_sources)
|
||||
assert any(job_source.temperature == 0.2 for job_source in job.job_sources)
|
||||
assert any(job_source.top_p == 0.85 for job_source in job.job_sources)
|
||||
assert any(job_source.ai_metadata == {"finish_reason": "stop", "usage": {"total_tokens": 42}} for job_source in job.job_sources)
|
||||
assert any(
|
||||
job_source.raw_api_response == {"id": "resp_123", "choices": [{"message": {"content": "Pipeline transcript"}}]}
|
||||
@@ -153,7 +163,7 @@ class TestPipelineSuccessFlow:
|
||||
queued_job = await services.jobs.read_job(job_id=create_result.job_id, session=async_session)
|
||||
assert queued_job is not None
|
||||
|
||||
await advance_job(job=queued_job, services=services, session=async_session)
|
||||
await advance_job(job=queued_job, services=services, settings=settings, session=async_session)
|
||||
job = await services.jobs.read_job(job_id=create_result.job_id, session=async_session)
|
||||
|
||||
assert job.status == JobStatus.TRANSCRIBED
|
||||
@@ -216,7 +226,7 @@ class TestPipelineSuccessFlow:
|
||||
queued_job = await services.jobs.read_job(job_id=create_result.job_id, session=async_session)
|
||||
assert queued_job is not None
|
||||
|
||||
await advance_job(job=queued_job, services=services, session=async_session)
|
||||
await advance_job(job=queued_job, services=services, settings=settings, session=async_session)
|
||||
job = await services.jobs.read_job(job_id=create_result.job_id, session=async_session)
|
||||
|
||||
assert job.status == JobStatus.PARTIAL_SUCCESS
|
||||
@@ -289,7 +299,7 @@ class TestPipelineSuccessFlow:
|
||||
|
||||
queued_job = await services.jobs.read_job(job_id=create_result.job_id, session=async_session)
|
||||
assert queued_job is not None
|
||||
await advance_job(job=queued_job, services=services, session=async_session)
|
||||
await advance_job(job=queued_job, services=services, settings=settings, session=async_session)
|
||||
|
||||
refreshed = await services.jobs.read_job(job_id=create_result.job_id, session=async_session)
|
||||
assert call_count == 1
|
||||
@@ -337,7 +347,7 @@ class TestPipelineFailureFlow:
|
||||
queued_job = await services.jobs.read_job(job_id=upload_result.job_id, session=async_session)
|
||||
processed = queued_job is not None
|
||||
if queued_job is not None:
|
||||
await advance_job(job=queued_job, services=services, session=async_session)
|
||||
await advance_job(job=queued_job, services=services, settings=settings, session=async_session)
|
||||
job = await services.jobs.read_job(job_id=upload_result.job_id, session=async_session)
|
||||
|
||||
assert processed is True
|
||||
|
||||
Reference in New Issue
Block a user