mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-28 14:07:55 +00:00
* fix(channels): wire channel→agent handler and fix Telegram send pipeline * format code * add supported tests
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
"""Tests for structured error_detail in executor traces."""
|
|
|
|
from openjarvis.agents.errors import EscalateError, FatalError, RetryableError
|
|
from openjarvis.agents.executor import AgentExecutor
|
|
from openjarvis.core.events import EventBus
|
|
|
|
|
|
def test_build_error_detail_fatal(tmp_path):
|
|
from openjarvis.agents.manager import AgentManager
|
|
|
|
mgr = AgentManager(db_path=str(tmp_path / "agents.db"))
|
|
exe = AgentExecutor(manager=mgr, event_bus=EventBus())
|
|
error = FatalError("401 unauthorized")
|
|
detail = exe._build_error_detail(error)
|
|
assert detail["error_type"] == "fatal"
|
|
assert "401 unauthorized" in detail["error_message"]
|
|
assert "API key" in detail["suggested_action"]
|
|
|
|
|
|
def test_build_error_detail_retryable(tmp_path):
|
|
from openjarvis.agents.manager import AgentManager
|
|
|
|
mgr = AgentManager(db_path=str(tmp_path / "agents.db"))
|
|
exe = AgentExecutor(manager=mgr, event_bus=EventBus())
|
|
error = RetryableError("connection timed out")
|
|
detail = exe._build_error_detail(error)
|
|
assert detail["error_type"] == "retryable"
|
|
assert "engine" in detail["suggested_action"].lower()
|
|
|
|
|
|
def test_build_error_detail_escalate(tmp_path):
|
|
from openjarvis.agents.manager import AgentManager
|
|
|
|
mgr = AgentManager(db_path=str(tmp_path / "agents.db"))
|
|
exe = AgentExecutor(manager=mgr, event_bus=EventBus())
|
|
error = EscalateError("agent needs help")
|
|
detail = exe._build_error_detail(error)
|
|
assert detail["error_type"] == "escalate"
|