feat: queue voice session cover generation jobs
This commit is contained in:
@@ -99,9 +99,9 @@ async def test_voice_session_correct_turn_and_finalize_to_story(
|
||||
new_callable=AsyncMock,
|
||||
) as mock_tts,
|
||||
patch(
|
||||
"app.services.voice_session_service.generate_story_cover",
|
||||
"app.services.voice_session_service.queue_story_asset_generation",
|
||||
new_callable=AsyncMock,
|
||||
) as mock_generate_cover,
|
||||
) as mock_queue_asset_generation,
|
||||
):
|
||||
mock_generate.side_effect = [
|
||||
StoryOutput(
|
||||
@@ -118,7 +118,23 @@ async def test_voice_session_correct_turn_and_finalize_to_story(
|
||||
),
|
||||
]
|
||||
mock_tts.side_effect = [b"turn-1-audio", b"turn-2-audio"]
|
||||
mock_generate_cover.return_value = "https://example.com/voice-cover.png"
|
||||
mock_queue_asset_generation.return_value = {
|
||||
"id": "cover-job-123",
|
||||
"story_id": 1,
|
||||
"output_mode": "asset_generation",
|
||||
"input_type": "image",
|
||||
"status": "running",
|
||||
"current_step": "request_accepted",
|
||||
"progress_percent": 5,
|
||||
"progress_label": "已接收请求",
|
||||
"is_terminal": False,
|
||||
"can_cancel": True,
|
||||
"can_retry": False,
|
||||
"result_snapshot": {},
|
||||
"error_message": None,
|
||||
"created_at": "2026-04-20T00:00:00Z",
|
||||
"updated_at": "2026-04-20T00:00:00Z",
|
||||
}
|
||||
|
||||
transport = ASGITransport(app=app)
|
||||
try:
|
||||
@@ -156,6 +172,7 @@ async def test_voice_session_correct_turn_and_finalize_to_story(
|
||||
finalize_data = response.json()
|
||||
story_id = finalize_data["story_id"]
|
||||
assert finalize_data["status"] == "completed"
|
||||
assert finalize_data["generation_job_id"] == "cover-job-123"
|
||||
|
||||
response = await client.get(f"/api/stories/{story_id}")
|
||||
assert response.status_code == 200
|
||||
@@ -172,7 +189,7 @@ async def test_voice_session_correct_turn_and_finalize_to_story(
|
||||
assert session_data["final_story_id"] == story_id
|
||||
assert session_data["can_continue"] is False
|
||||
assert session_data["story_state"]["final_summary"]
|
||||
mock_generate_cover.assert_awaited_once()
|
||||
mock_queue_asset_generation.assert_awaited_once()
|
||||
finally:
|
||||
app.dependency_overrides.clear()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user