feat: add queue processor with model resolution

This commit is contained in:
2026-05-25 18:51:22 +02:00
parent 6e75ba21da
commit 1feb012682
2 changed files with 171 additions and 0 deletions
+71
View File
@@ -187,3 +187,74 @@ async def test_worker_client_health():
client = WorkerClient()
is_healthy = await client.health()
assert is_healthy is True
@pytest.mark.asyncio
async def test_resolve_model_request_overrides():
from src.backend.services.queue import resolve_model
model = resolve_model(
request_model="claude-opus-4-7",
topic_model="claude-sonnet-4-6",
)
assert model == "claude-opus-4-7"
@pytest.mark.asyncio
async def test_resolve_model_topic_fallback():
from src.backend.services.queue import resolve_model
model = resolve_model(
request_model=None,
topic_model="claude-sonnet-4-6",
)
assert model == "claude-sonnet-4-6"
@pytest.mark.asyncio
async def test_resolve_model_global_fallback():
from src.backend.services.queue import resolve_model
model = resolve_model(request_model=None, topic_model=None)
assert model == "claude-sonnet-4-6"
@pytest.mark.asyncio
async def test_process_one_request():
from src.backend.services.queue import process_one
from src.backend.db.database import (
init_db,
get_db,
create_topic,
create_request,
get_request,
)
await init_db()
db = await get_db()
try:
topic = await create_topic(db, "test-queue", "System prompt")
req = await create_request(db, "Hello", topic["id"])
finally:
await db.close()
mock_worker = AsyncMock()
mock_worker.process.return_value = {
"success": True,
"result": "Hi there!",
"session_id": None,
}
mock_worker.summarize.return_value = {
"success": True,
"summary": "Greeted the user.",
}
await process_one(mock_worker)
db = await get_db()
try:
updated = await get_request(db, req["id"])
assert updated["status"] == "completed"
assert updated["result"] == "Hi there!"
finally:
await db.close()