test(server): add OCR endpoint and service tests
New tests: - server/tests/test_ocr_endpoints.py: OCR API endpoint tests - server/tests/test_ocr_service.py: OCR service unit tests Updated tests: - server/tests/test_openapi_schema.py: update OpenAPI schema tests - server/tests/test_orchestrator_service.py: update orchestrator service tests
This commit is contained in:
@@ -3,13 +3,14 @@ from __future__ import annotations
|
||||
from collections.abc import Generator
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy import create_engine, select
|
||||
from sqlalchemy.orm import Session, sessionmaker
|
||||
from sqlalchemy.pool import StaticPool
|
||||
|
||||
from app.api.deps import get_db
|
||||
from app.db.base import Base
|
||||
from app.main import create_app
|
||||
from app.models.financial_record import ExpenseClaim
|
||||
from app.services.agent_assets import AgentAssetService
|
||||
|
||||
|
||||
@@ -142,7 +143,7 @@ def test_orchestrator_approval_required_returns_confirmation_result() -> None:
|
||||
|
||||
|
||||
def test_orchestrator_user_agent_draft_returns_structured_payload() -> None:
|
||||
client, _ = build_client()
|
||||
client, session_factory = build_client()
|
||||
|
||||
response = client.post(
|
||||
"/api/v1/orchestrator/run",
|
||||
@@ -159,8 +160,22 @@ def test_orchestrator_user_agent_draft_returns_structured_payload() -> None:
|
||||
assert payload["selected_agent"] == "user_agent"
|
||||
assert payload["status"] == "succeeded"
|
||||
assert payload["result"]["draft_payload"]["confirmation_required"] is True
|
||||
assert payload["result"]["draft_payload"]["claim_id"]
|
||||
assert payload["result"]["draft_payload"]["claim_no"].startswith("EXP-")
|
||||
assert payload["result"]["draft_payload"]["status"] == "draft"
|
||||
assert payload["result"]["suggested_actions"]
|
||||
|
||||
with session_factory() as db:
|
||||
claim = db.scalar(
|
||||
select(ExpenseClaim).where(
|
||||
ExpenseClaim.id == payload["result"]["draft_payload"]["claim_id"]
|
||||
)
|
||||
)
|
||||
assert claim is not None
|
||||
assert claim.claim_no == payload["result"]["draft_payload"]["claim_no"]
|
||||
assert claim.status == "draft"
|
||||
assert claim.items
|
||||
|
||||
|
||||
def test_orchestrator_treats_expense_narrative_as_draft_instead_of_ar_query() -> None:
|
||||
client, _ = build_client()
|
||||
|
||||
Reference in New Issue
Block a user