Local changes: Updated model training, removed debug instrumentation, and configuration improvements
This commit is contained in:
40
tests/unit/exchanges/test_factory.py
Normal file
40
tests/unit/exchanges/test_factory.py
Normal file
@@ -0,0 +1,40 @@
|
||||
"""Tests for exchange factory."""
|
||||
|
||||
import pytest
|
||||
from unittest.mock import patch, Mock
|
||||
from src.exchanges.factory import ExchangeFactory
|
||||
from src.exchanges.coinbase import CoinbaseExchange
|
||||
|
||||
|
||||
class TestExchangeFactory:
|
||||
"""Tests for ExchangeFactory."""
|
||||
|
||||
def test_register_exchange(self):
|
||||
"""Test exchange registration."""
|
||||
ExchangeFactory.register_exchange("test_exchange", CoinbaseExchange)
|
||||
assert "test_exchange" in ExchangeFactory.list_available()
|
||||
|
||||
def test_get_exchange(self):
|
||||
"""Test getting exchange instance."""
|
||||
with patch('src.exchanges.factory.get_key_manager') as mock_km:
|
||||
mock_km.return_value.get_exchange_keys.return_value = {
|
||||
'api_key': 'test_key',
|
||||
'secret_key': 'test_secret',
|
||||
'permissions': 'read_only'
|
||||
}
|
||||
|
||||
exchange = ExchangeFactory.get_exchange("coinbase")
|
||||
assert exchange is not None
|
||||
assert isinstance(exchange, CoinbaseExchange)
|
||||
|
||||
def test_get_nonexistent_exchange(self):
|
||||
"""Test getting non-existent exchange."""
|
||||
with pytest.raises(ValueError, match="not registered"):
|
||||
ExchangeFactory.get_exchange("nonexistent")
|
||||
|
||||
def test_list_available(self):
|
||||
"""Test listing available exchanges."""
|
||||
exchanges = ExchangeFactory.list_available()
|
||||
assert isinstance(exchanges, list)
|
||||
assert "coinbase" in exchanges
|
||||
|
||||
Reference in New Issue
Block a user