import pytest import responses from multi_swarm.cerbero.client import CerberoClient @responses.activate def test_call_tool_passes_bearer_and_bot_tag() -> None: responses.add( responses.POST, "http://test:9000/mcp-deribit/tools/get_iv_rank", json={"iv_rank": 0.42}, status=200, ) client = CerberoClient( base_url="http://test:9000", token="tok-xyz", bot_tag="swarm-poc-phase1" ) result = client.call_tool("deribit", "get_iv_rank", {"symbol": "BTC-PERPETUAL"}) assert result == {"iv_rank": 0.42} req = responses.calls[0].request assert req.headers["Authorization"] == "Bearer tok-xyz" assert req.headers["X-Bot-Tag"] == "swarm-poc-phase1" @responses.activate def test_call_tool_raises_on_error() -> None: responses.add( responses.POST, "http://test:9000/mcp-deribit/tools/get_iv_rank", json={"error": "bad"}, status=400, ) client = CerberoClient( base_url="http://test:9000", token="tok-xyz", bot_tag="swarm-poc-phase1" ) with pytest.raises(RuntimeError): client.call_tool("deribit", "get_iv_rank", {})