mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-28 05:12:26 +00:00
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
"""Tests for OpenHandsAgent (real openhands-sdk wrapper)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
|
|
from openjarvis.agents._stubs import BaseAgent
|
|
from openjarvis.agents.openhands import OpenHandsAgent
|
|
from openjarvis.core.registry import AgentRegistry
|
|
|
|
|
|
class TestOpenHandsAgentRegistration:
|
|
def test_registered(self):
|
|
AgentRegistry.register_value("openhands", OpenHandsAgent)
|
|
assert AgentRegistry.contains("openhands")
|
|
|
|
def test_agent_id(self):
|
|
engine = MagicMock()
|
|
engine.engine_id = "mock"
|
|
agent = OpenHandsAgent(engine, "test-model")
|
|
assert agent.agent_id == "openhands"
|
|
|
|
def test_does_not_accept_tools(self):
|
|
"""Real OpenHandsAgent doesn't use ToolUsingAgent base."""
|
|
assert OpenHandsAgent.accepts_tools is False
|
|
|
|
def test_is_base_agent(self):
|
|
assert issubclass(OpenHandsAgent, BaseAgent)
|
|
|
|
|
|
class TestOpenHandsAgentImportError:
|
|
def test_run_without_sdk_raises(self):
|
|
"""Running without openhands-sdk installed raises ImportError."""
|
|
engine = MagicMock()
|
|
engine.engine_id = "mock"
|
|
agent = OpenHandsAgent(engine, "test-model")
|
|
with pytest.raises(ImportError, match="openhands-sdk"):
|
|
agent.run("Hello")
|
|
|
|
|
|
class TestOpenHandsAgentConstructor:
|
|
def test_default_workspace(self):
|
|
engine = MagicMock()
|
|
agent = OpenHandsAgent(engine, "test-model")
|
|
assert agent._workspace # should be cwd
|
|
|
|
def test_custom_workspace(self):
|
|
engine = MagicMock()
|
|
agent = OpenHandsAgent(engine, "test-model", workspace="/tmp/test")
|
|
assert agent._workspace == "/tmp/test"
|
|
|
|
def test_custom_api_key(self):
|
|
engine = MagicMock()
|
|
agent = OpenHandsAgent(engine, "test-model", api_key="sk-test")
|
|
assert agent._api_key == "sk-test"
|