Local changes: Updated model training, removed debug instrumentation, and configuration improvements
This commit is contained in:
65
tests/integration/test_ui_backtest_workflow.py
Normal file
65
tests/integration/test_ui_backtest_workflow.py
Normal file
@@ -0,0 +1,65 @@
|
||||
"""Integration tests for UI backtest workflow."""
|
||||
|
||||
import pytest
|
||||
from datetime import datetime, timedelta
|
||||
from PyQt6.QtWidgets import QApplication
|
||||
from unittest.mock import Mock, patch
|
||||
from src.ui.widgets.backtest_view import BacktestViewWidget
|
||||
from src.strategies.technical.rsi_strategy import RSIStrategy
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def app():
|
||||
"""Create QApplication for tests."""
|
||||
if not QApplication.instance():
|
||||
return QApplication([])
|
||||
return QApplication.instance()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def backtest_view(app):
|
||||
"""Create BacktestViewWidget."""
|
||||
view = BacktestViewWidget()
|
||||
|
||||
# Mock backtest engine
|
||||
mock_engine = Mock()
|
||||
mock_engine.run_backtest.return_value = {
|
||||
'total_return': 10.5,
|
||||
'sharpe_ratio': 1.2,
|
||||
'max_drawdown': -5.0,
|
||||
'win_rate': 0.55,
|
||||
'total_trades': 50,
|
||||
'final_value': 110.5,
|
||||
'trades': []
|
||||
}
|
||||
view.backtest_engine = mock_engine
|
||||
|
||||
return view
|
||||
|
||||
|
||||
def test_backtest_configuration(backtest_view):
|
||||
"""Test backtest configuration form."""
|
||||
assert backtest_view.strategy_combo is not None
|
||||
assert backtest_view.symbol_input is not None
|
||||
assert backtest_view.start_date is not None
|
||||
assert backtest_view.end_date is not None
|
||||
|
||||
|
||||
def test_backtest_results_display(backtest_view):
|
||||
"""Test backtest results are displayed."""
|
||||
results = {
|
||||
'total_return': 10.5,
|
||||
'sharpe_ratio': 1.2,
|
||||
'max_drawdown': -5.0,
|
||||
'win_rate': 0.55,
|
||||
'total_trades': 50,
|
||||
'final_value': 110.5,
|
||||
'trades': []
|
||||
}
|
||||
|
||||
backtest_view._display_results(results)
|
||||
|
||||
# Verify metrics text contains results
|
||||
metrics_text = backtest_view.metrics_text.toPlainText()
|
||||
assert "10.5" in metrics_text # Total return
|
||||
assert "1.2" in metrics_text # Sharpe ratio
|
||||
Reference in New Issue
Block a user