67 lines
2.7 KiB
Python
67 lines
2.7 KiB
Python
"""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, bridge, probe_process):
|
|
if probe_process is None:
|
|
pytest.skip("No probe available")
|
|
# Connect
|
|
result = bridge.call_tool("connectProbeDefault")
|
|
assert isinstance(result, dict), f"connectProbeDefault failed: {result}"
|
|
assert result.get("connected"), f"Not connected: {result}"
|
|
# Verify status
|
|
status = 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 = bridge.call_tool("disconnectProbe")
|
|
assert isinstance(result, dict)
|
|
assert result.get("state") == "disconnected"
|
|
|
|
def test_reconnect(self, bridge, probe_process):
|
|
if probe_process is None:
|
|
pytest.skip("No probe available")
|
|
bridge.call_tool("connectProbeDefault")
|
|
# Disconnect
|
|
bridge.call_tool("disconnectProbe")
|
|
# Reconnect with explicit args
|
|
result = 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, bridge, probe_process):
|
|
if probe_process is None:
|
|
pytest.skip("No probe available")
|
|
bridge.call_tool("connectProbeDefault")
|
|
bridge.call_tool("disconnectProbe")
|
|
result = bridge.call_tool("connectProbeDefault")
|
|
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 |