#!/usr/bin/env python3 """Tests for bridge WebSocket client reconnect behaviour.""" from __future__ import annotations import asyncio import sys from pathlib import Path from unittest.mock import AsyncMock, MagicMock, patch import pytest ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(ROOT / "src")) from models.bridge_ws_client import BridgeWsClient # noqa: E402 def test_send_returns_false_when_not_connected(): async def _run(): client = BridgeWsClient("ws://127.0.0.1/ws", reconnect_delay_s=0.01) async def _no_wait(_timeout=30.0): return False client.wait_connected = _no_wait # type: ignore[method-assign] return await client.send_packet({"v": "1", "devices": {}}) assert asyncio.run(_run()) is False def test_disconnect_clears_connected_event(): client = BridgeWsClient("ws://127.0.0.1/ws", reconnect_delay_s=0.01) client._connected.set() client._signal_disconnect() assert not client._connected.is_set()