Files
Artemis-Eapil/tests/unit/admin_console/test_step_repository.py
T
chenmingxuan 2ddec53954
CI / Python 3.12 / ubuntu-latest (push) Canceled after 0s
CI / Python 3.12 / windows-latest (push) Canceled after 0s
CI / Frontend tests and production build (push) Canceled after 0s
CI / Build and smoke-test Python packages (push) Canceled after 0s
feat: add Chinese UI, Responses models, and mirrored Windows setup
Localize the web console and persist custom model and capability settings.
Use OpenAI Responses exclusively and move runtime limits into environment configuration.
Bootstrap uv and the virtual environment on Windows, support optional China mirrors,
and package source distributions without environments, build output, or credentials.

Update regression tests and repository quality checks for the new behavior.
2026-09-22 19:16:17 +08:00

115 lines
3.2 KiB
Python

import json
from apps.admin_console.database.repositories.step_repository import StepRepository
def test_legacy_pause_log_is_normalized_to_failed_llm_trace():
repository = StepRepository()
trace = {
"trace_id": "pause-log",
"type": "log",
"name": "artemis.services.llm",
"status": "success",
"payload": json.dumps(
{
"message": (
"LLM Error: 503 UNAVAILABLE. {'error': {'message': 'High demand'}}. "
"Pausing execution to wait for resume signal..."
)
}
),
}
normalized = repository._normalize_display_trace(trace)
assert normalized["type"] == "llm_call"
assert normalized["name"] == "llm_pause"
assert normalized["status"] == "failed"
assert normalized["payload"]["pause"] is True
assert normalized["payload"]["error"].startswith("503 UNAVAILABLE")
def test_unrelated_log_is_not_presented_as_llm_failure():
repository = StepRepository()
trace = {
"trace_id": "ordinary-log",
"type": "log",
"name": "artemis.services.llm",
"status": "success",
"payload": json.dumps({"message": "LLM request completed"}),
}
normalized = repository._normalize_display_trace(trace)
assert normalized["type"] == "log"
assert normalized["status"] == "success"
def test_retrying_llm_payload_keeps_user_visible_retry_details():
repository = StepRepository()
trace = {
"trace_id": "retry-1",
"type": "llm_call",
"name": "llm_retry",
"status": "retrying",
"payload": json.dumps(
{
"error": "503 UNAVAILABLE: high demand",
"delay": 1.18,
"provider": "openai",
"source": "provider_sdk",
"recoverable": True,
"internal_noise": "do not expose",
}
),
}
normalized = repository._normalize_display_trace(trace)
assert normalized["payload"] == {
"error": "503 UNAVAILABLE: high demand",
"delay": 1.18,
"provider": "openai",
"source": "provider_sdk",
"recoverable": True,
}
def test_terminal_llm_payload_keeps_wait_and_retry_aggregation():
repository = StepRepository()
retries = [
{
"delay": 5.0,
"scheduled_at": 100.0,
"provider": "openai",
"source": "provider_sdk",
}
]
trace = {
"type": "llm_call",
"name": "llm_pause",
"status": "failed",
"payload": json.dumps(
{
"error": "503 UNAVAILABLE",
"pause": True,
"request_id": "request-1",
"provider": "openai",
"waited_seconds": 18.5,
"retries": retries,
"messages": ["private prompt"],
}
),
}
normalized = repository._normalize_display_trace(trace)
assert normalized["payload"] == {
"error": "503 UNAVAILABLE",
"provider": "openai",
"pause": True,
"request_id": "request-1",
"waited_seconds": 18.5,
"retries": retries,
}