feat: add shared test acceptance and release 1.5.0

This commit is contained in:
chenmingxuan committed 2026-10-12 12:33:55 +08:00
1 parent 3fbcdfefea
commit ec2c1265d3
35 files changed
+826 -51

No files matched your search

+10 -1
View File
@@ -13,6 +13,7 @@ from apps.admin_console.services import automation_service as service
from apps.admin_console.services import batch_archive as archive_service
from apps.admin_console.services import report_export, task_import
from artemis.config.settings import settings
from artemis.runtime.case_result import read_case_result
router = APIRouter(prefix="/api/automation", tags=["automation"])
@@ -122,7 +123,12 @@ def batch_by_request(request_id: str):
@router.get("/batches/{batch_id}")
def batch_detail(batch_id: str):
return {**require("batch", batch_id), "jobs": store.jobs(batch_id)}
jobs = store.jobs(batch_id)
for job in jobs:
job["test_result"] = read_case_result(
job["session_id"], job["status"], job.get("error") or ""
)
return {**require("batch", batch_id), "jobs": jobs}
@router.delete("/batches/{batch_id}")
@@ -260,6 +266,9 @@ def history(
items = [dict(row) for row in rows]
jobs = store.jobs_for_sessions([item["session_id"] for item in items])
for item in items:
item["test_result"] = read_case_result(
item["session_id"], item["status"], item.get("error") or ""
)
if job := jobs.get(item["session_id"]):
item["name"] = task_import.execution_title(job)
item["iteration"] = job.get("iteration", 1)
+9 -1
View File
@@ -20,6 +20,7 @@ from fastapi import APIRouter, HTTPException
from artemis.config import DB_PATH, TRACES_PATH
from artemis.runtime import trace_store
from artemis.runtime.case_result import read_case_result
try:
from admin_console.core.state import state
@@ -130,6 +131,9 @@ def _list_sessions_sync():
else:
row_dict["video_url"] = None
row_dict["recording_status"] = recording_status
row_dict["test_result"] = read_case_result(
s_id, row_dict.get("status") or "", row_dict.get("error") or "", root=TRACES_PATH
)
agent_names = agent_names_by_session.get(s_id, [])
sess_profile = model_service.resolve_session_profile(
@@ -189,7 +193,11 @@ async def get_session_details(session_id: str):
row = session_repo.get_session_by_id(session_id)
if not row:
raise HTTPException(status_code=404, detail=f"Session {session_id} not found")
return dict(row)
result = dict(row)
result["test_result"] = read_case_result(
session_id, result.get("status") or "", root=TRACES_PATH
)
return result
@router.get("/api/sessions/{session_id}/usage")