Download tests/test_dispatch_session_id.py from SaylorTwift/hermes-agent: direct link, hf CLI and curl.
- Browser
- Download file 2.73 kB
-
https://huggingface.co/SaylorTwift/hermes-agent/resolve/main/tests/test_dispatch_session_id.py
- Command line
-
hf download hf://SaylorTwift/hermes-agent/tests/test_dispatch_session_id.py
-
curl -L -o test_dispatch_session_id.py https://huggingface.co/SaylorTwift/hermes-agent/resolve/main/tests/test_dispatch_session_id.py
2.73 kB
| """Tests that handle_function_call forwards session_id into registry.dispatch.""" | |
| import json | |
| from unittest.mock import MagicMock, patch | |
| def _make_registry(captured: dict): | |
| """Return a mock registry whose dispatch records the kwargs it receives.""" | |
| registry = MagicMock() | |
| def _dispatch(name, args, **kwargs): | |
| captured.update(kwargs) | |
| return json.dumps({"result": "ok"}) | |
| registry.dispatch.side_effect = _dispatch | |
| return registry | |
| class TestSessionIdForwarding: | |
| def test_standard_path_forwards_session_id(self): | |
| """registry.dispatch receives session_id on the normal tool path.""" | |
| captured = {} | |
| with patch("model_tools.registry", _make_registry(captured)): | |
| from model_tools import handle_function_call | |
| handle_function_call( | |
| "web_search", | |
| {"query": "test"}, | |
| task_id="t1", | |
| session_id="sess-abc", | |
| skip_pre_tool_call_hook=True, | |
| ) | |
| assert captured.get("session_id") == "sess-abc" | |
| def test_execute_code_path_forwards_session_id(self): | |
| """registry.dispatch receives session_id on the execute_code path.""" | |
| captured = {} | |
| with patch("model_tools.registry", _make_registry(captured)): | |
| from model_tools import handle_function_call | |
| handle_function_call( | |
| "execute_code", | |
| {"code": "print(1)"}, | |
| task_id="t1", | |
| session_id="sess-xyz", | |
| skip_pre_tool_call_hook=True, | |
| ) | |
| assert captured.get("session_id") == "sess-xyz" | |
| def test_session_id_default_is_none(self): | |
| """When session_id is omitted, dispatch receives None.""" | |
| captured = {} | |
| with patch("model_tools.registry", _make_registry(captured)): | |
| from model_tools import handle_function_call | |
| handle_function_call( | |
| "web_search", | |
| {"query": "test"}, | |
| task_id="t1", | |
| skip_pre_tool_call_hook=True, | |
| ) | |
| assert "session_id" in captured | |
| assert captured["session_id"] is None | |
| def test_task_id_still_forwarded(self): | |
| """Existing task_id forwarding is not broken by this change.""" | |
| captured = {} | |
| with patch("model_tools.registry", _make_registry(captured)): | |
| from model_tools import handle_function_call | |
| handle_function_call( | |
| "web_search", | |
| {"query": "test"}, | |
| task_id="task-999", | |
| session_id="sess-1", | |
| skip_pre_tool_call_hook=True, | |
| ) | |
| assert captured.get("task_id") == "task-999" | |