""" Tests for ExternalTools. """ import pytest from dcos.protocols.external_tools import ExternalTools def sample_handler(param: str) -> str: return f"handled: {param}" class TestExternalTools: def test_register_and_execute(self): tools = ExternalTools() tools.register_tool("sample", sample_handler) result = tools.execute("sample", {"param": "test"}) assert result == "handled: test" def test_list_tools(self): tools = ExternalTools() tools.register_tool("tool_a", sample_handler) tools.register_tool("tool_b", sample_handler) assert len(tools.list_tools()) == 2 def test_missing_tool(self): tools = ExternalTools() with pytest.raises(KeyError): tools.execute("nonexistent", {}) def test_get_result(self): tools = ExternalTools() tools.register_tool("calc", sample_handler) tools.execute("calc", {"param": "42"}) assert tools.get_result("calc") == "handled: 42"