"""Tests for connection management tools.""" import pytest class TestConnection: """Verify connectProbe, probeStatus, disconnectProbe work.""" def test_tools_listed(self, bridge): tools = bridge.list_tools() names = [t["name"] for t in tools] for expected in ["connectProbe", "connectProbeDefault", "disconnectProbe", "probeStatus"]: assert expected in names, f"Missing tool: {expected}" def test_probe_status_disconnected(self, bridge): status = bridge.call_tool("probeStatus") assert isinstance(status, dict) assert status.get("state") in ("disconnected", "connecting") assert status.get("ready") is False def test_connect_and_disconnect(self, connected_bridge): # connectProbeDefault is already called by connected_bridge fixture status = connected_bridge.call_tool("probeStatus") assert isinstance(status, dict) assert status.get("state") == "ready" assert status.get("ready") is True assert "tcp://" in status.get("url", "") # Now disconnect result = connected_bridge.call_tool("disconnectProbe") assert isinstance(result, dict) assert result.get("state") == "disconnected" def test_reconnect(self, connected_bridge): # Disconnect connected_bridge.call_tool("disconnectProbe") # Reconnect with explicit args result = connected_bridge.call_tool("connectProbe", {"host": "127.0.0.1", "port": 11732}) assert isinstance(result, dict) assert result.get("connected") is True assert result.get("state") == "ready" def test_connect_default_after_disconnect(self, connected_bridge): connected_bridge.call_tool("disconnectProbe") result = connected_bridge.call_tool("connectProbeDefault") assert isinstance(result, dict) assert result.get("connected") is True