Files
crypto_trader/tests/unit/exchanges/test_websocket.py

45 lines
1.3 KiB
Python

"""Tests for WebSocket functionality."""
import pytest
from unittest.mock import Mock, patch
from src.exchanges.coinbase import CoinbaseAdapter
def test_subscribe_ticker():
"""Test ticker subscription."""
adapter = CoinbaseAdapter("test_key", "test_secret", sandbox=True)
callback = Mock()
adapter.subscribe_ticker("BTC/USD", callback)
assert f'ticker_BTC/USD' in adapter._ws_callbacks
assert adapter._ws_callbacks[f'ticker_BTC/USD'] == callback
def test_subscribe_orderbook():
"""Test orderbook subscription."""
adapter = CoinbaseAdapter("test_key", "test_secret", sandbox=True)
callback = Mock()
adapter.subscribe_orderbook("BTC/USD", callback)
assert f'orderbook_BTC/USD' in adapter._ws_callbacks
def test_subscribe_trades():
"""Test trades subscription."""
adapter = CoinbaseAdapter("test_key", "test_secret", sandbox=True)
callback = Mock()
adapter.subscribe_trades("BTC/USD", callback)
assert f'trades_BTC/USD' in adapter._ws_callbacks
def test_normalize_symbol():
"""Test symbol normalization."""
adapter = CoinbaseAdapter("test_key", "test_secret", sandbox=True)
assert adapter.normalize_symbol("BTC/USD") == "BTC-USD"
assert adapter.normalize_symbol("ETH/USDT") == "ETH-USDT"