feat: add queue processor with model resolution
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user