Hermes-agent
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
"""Tests for terminal/file tool availability in local dev environments."""
|
||||
|
||||
import importlib
|
||||
|
||||
import pytest
|
||||
|
||||
from model_tools import get_tool_definitions
|
||||
|
||||
terminal_tool_module = importlib.import_module("tools.terminal_tool")
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _clear_caches():
|
||||
"""Invalidate check_fn and tool-definitions caches before each test
|
||||
so that monkeypatched env vars / config take effect."""
|
||||
from tools.registry import invalidate_check_fn_cache
|
||||
from model_tools import _clear_tool_defs_cache
|
||||
invalidate_check_fn_cache()
|
||||
_clear_tool_defs_cache()
|
||||
yield
|
||||
invalidate_check_fn_cache()
|
||||
_clear_tool_defs_cache()
|
||||
|
||||
|
||||
class TestTerminalRequirements:
|
||||
def test_local_backend_requirements(self, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
terminal_tool_module,
|
||||
"_get_env_config",
|
||||
lambda: {"env_type": "local"},
|
||||
)
|
||||
assert terminal_tool_module.check_terminal_requirements() is True
|
||||
|
||||
def test_terminal_and_file_tools_resolve_for_local_backend(self, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
terminal_tool_module,
|
||||
"_get_env_config",
|
||||
lambda: {"env_type": "local"},
|
||||
)
|
||||
tools = get_tool_definitions(enabled_toolsets=["terminal", "file"], quiet_mode=True)
|
||||
names = {tool["function"]["name"] for tool in tools}
|
||||
assert "terminal" in names
|
||||
assert {"read_file", "write_file", "patch", "search_files"}.issubset(names)
|
||||
|
||||
def test_terminal_and_execute_code_tools_resolve_for_managed_modal(self, monkeypatch, tmp_path):
|
||||
monkeypatch.setattr("tools.tool_backend_helpers.managed_nous_tools_enabled", lambda: True)
|
||||
monkeypatch.setattr(terminal_tool_module, "managed_nous_tools_enabled", lambda: True)
|
||||
monkeypatch.setenv("HOME", str(tmp_path))
|
||||
monkeypatch.setenv("USERPROFILE", str(tmp_path))
|
||||
monkeypatch.delenv("MODAL_TOKEN_ID", raising=False)
|
||||
monkeypatch.delenv("MODAL_TOKEN_SECRET", raising=False)
|
||||
monkeypatch.setattr(
|
||||
terminal_tool_module,
|
||||
"_get_env_config",
|
||||
lambda: {"env_type": "modal", "modal_mode": "managed"},
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
terminal_tool_module,
|
||||
"is_managed_tool_gateway_ready",
|
||||
lambda _vendor: True,
|
||||
)
|
||||
tools = get_tool_definitions(enabled_toolsets=["terminal", "code_execution"], quiet_mode=True)
|
||||
names = {tool["function"]["name"] for tool in tools}
|
||||
|
||||
assert "terminal" in names
|
||||
assert "execute_code" in names
|
||||
Reference in New Issue
Block a user