Local changes: Updated model training, removed debug instrumentation, and configuration improvements
This commit is contained in:
55
tests/unit/risk/test_manager.py
Normal file
55
tests/unit/risk/test_manager.py
Normal file
@@ -0,0 +1,55 @@
|
||||
"""Tests for risk manager."""
|
||||
|
||||
import pytest
|
||||
from src.risk.manager import get_risk_manager, RiskManager
|
||||
|
||||
|
||||
class TestRiskManager:
|
||||
"""Tests for RiskManager."""
|
||||
|
||||
@pytest.fixture
|
||||
def risk_manager(self):
|
||||
"""Create risk manager instance."""
|
||||
return get_risk_manager()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_check_trade_risk(self, risk_manager):
|
||||
"""Test trade risk checking."""
|
||||
# Test with valid trade
|
||||
result = await risk_manager.check_trade_risk(
|
||||
exchange_id=1,
|
||||
strategy_id=1,
|
||||
symbol="BTC/USD",
|
||||
side="buy",
|
||||
amount=0.01,
|
||||
price=50000.0,
|
||||
current_portfolio_value=10000.0
|
||||
)
|
||||
|
||||
assert isinstance(result, bool)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_check_max_drawdown(self, risk_manager):
|
||||
"""Test max drawdown check."""
|
||||
result = await risk_manager.check_max_drawdown(
|
||||
current_portfolio_value=9000.0,
|
||||
peak_portfolio_value=10000.0
|
||||
)
|
||||
|
||||
assert isinstance(result, bool)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_add_risk_limit(self, risk_manager, mock_database):
|
||||
"""Test adding risk limit."""
|
||||
engine, Session = mock_database
|
||||
|
||||
await risk_manager.add_risk_limit(
|
||||
limit_type="max_drawdown",
|
||||
value=0.10, # 10%
|
||||
is_active=True
|
||||
)
|
||||
|
||||
# Verify limit was added
|
||||
await risk_manager.load_risk_limits()
|
||||
assert len(risk_manager.risk_limits) > 0
|
||||
|
||||
Reference in New Issue
Block a user