build 059.9: add websocket runtime protocols

This commit is contained in:
2026-07-17 19:15:15 +03:00
parent e5a4efa5d1
commit 8109ed6210
3 changed files with 442 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
# app/tests/unit/market_data/acquisition/runtime/test_websocket_protocol.py
from __future__ import annotations
from src.market_data.acquisition.runtime.websocket_protocol import (
WebSocketSessionProtocol,
WebSocketSubscriptionManagerProtocol,
WebSocketTransportProtocol,
)
class FakeWebSocketTransport:
async def connect(self) -> None:
return None
async def disconnect(self) -> None:
return None
async def send(self, message: str | bytes) -> None:
return None
async def receive(self) -> str | bytes:
return "{}"
class FakeWebSocketSession:
@property
def is_connected(self) -> bool:
return True
async def start(self) -> None:
return None
async def stop(self) -> None:
return None
class FakeWebSocketSubscriptionManager:
async def restore_subscriptions(self) -> None:
return None
async def clear_subscriptions(self) -> None:
return None
def test_transport_implementation_satisfies_protocol() -> None:
assert isinstance(FakeWebSocketTransport(), WebSocketTransportProtocol)
def test_session_implementation_satisfies_protocol() -> None:
assert isinstance(FakeWebSocketSession(), WebSocketSessionProtocol)
def test_subscription_manager_implementation_satisfies_protocol() -> None:
assert isinstance(
FakeWebSocketSubscriptionManager(),
WebSocketSubscriptionManagerProtocol,
)
def test_incomplete_transport_does_not_satisfy_protocol() -> None:
class IncompleteTransport:
async def connect(self) -> None:
return None
assert not isinstance(IncompleteTransport(), WebSocketTransportProtocol)