import pytest import threading from unittest.mock import MagicMock, patch from src.ai_client_proxy import AIProxyClient def test_proxy_initialization(): proxy = AIProxyClient() assert proxy._status == "disconnected" assert proxy._pending == {} def test_proxy_status_property(): proxy = AIProxyClient() assert proxy.status in ("disconnected", "init", "ready", "busy", "error") def test_proxy_status_reflects_internal_state(): proxy = AIProxyClient() assert proxy.status == "disconnected" proxy._status = "ready" assert proxy.status == "ready" def test_send_command_without_server_returns_error(): proxy = AIProxyClient() proxy._status = "ready" result = proxy.send_command("list_models", {"provider": "gemini"}) assert "error" in result def test_pending_dict_structure(): proxy = AIProxyClient() assert isinstance(proxy._pending, dict) assert len(proxy._pending) == 0 def test_stop_when_not_started(): proxy = AIProxyClient() proxy.stop() assert proxy._status == "disconnected" assert proxy._process is None