Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
"""Regression tests for A2A client-tool schema registration."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
|
||||
from plugins.platforms.a2a import tools as a2a_tools
|
||||
from tools import tool_search
|
||||
from tools.registry import ToolRegistry
|
||||
|
||||
|
||||
def test_a2a_call_schema_round_trips_through_tool_describe(monkeypatch):
|
||||
registry = ToolRegistry()
|
||||
|
||||
# The client tools are config-gated now (test_a2a_tools_gate.py):
|
||||
# open the gate the way a real install would — configure a peer.
|
||||
monkeypatch.setattr(
|
||||
a2a_tools,
|
||||
"_load_config",
|
||||
lambda: {"a2a_agents": {"peer": {"url": "http://localhost:9999"}}},
|
||||
)
|
||||
|
||||
class _Context:
|
||||
def register_tool(self, name, toolset, schema, handler, **kwargs):
|
||||
registry.register(
|
||||
name=name,
|
||||
toolset=toolset,
|
||||
schema=schema,
|
||||
handler=handler,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
a2a_tools.register_tools(_Context())
|
||||
definitions = registry.get_definitions({"a2a_call"})
|
||||
monkeypatch.setattr(
|
||||
tool_search,
|
||||
"is_deferrable_tool_name",
|
||||
# #97979 added the defer_tools positional (curated-set override).
|
||||
lambda name, defer_tools=None: name == "a2a_call",
|
||||
)
|
||||
|
||||
described = json.loads(
|
||||
tool_search.dispatch_tool_describe(
|
||||
{"names": ["a2a_call"]},
|
||||
current_tool_defs=definitions,
|
||||
)
|
||||
)["tools"]["a2a_call"]
|
||||
|
||||
assert described["description"]
|
||||
assert described["parameters"]["required"] == ["agent", "message"]
|
||||
assert set(described["parameters"]["properties"]) == {
|
||||
"agent",
|
||||
"message",
|
||||
"context_id",
|
||||
}
|
||||
Reference in New Issue
Block a user