fix(pre-alpha): preserve injected backtest services

This commit is contained in:
Bu5hm4nn
2026-03-26 12:18:39 +01:00
parent 18fd0681ca
commit d7117bb6a3
3 changed files with 62 additions and 5 deletions

View File

@@ -4,7 +4,10 @@ from datetime import date
import pytest
from app.services.backtesting.historical_provider import SyntheticHistoricalProvider
from app.services.backtesting.service import BacktestService
from app.services.backtesting.ui_service import BacktestPageService
from tests.helpers_backtest_sources import StaticBacktestSource
def test_backtest_page_service_uses_fixture_window_for_deterministic_run() -> None:
@@ -186,6 +189,23 @@ def test_backtest_preview_validation_requires_supported_fixture_window_even_with
)
def test_backtest_preview_validation_accepts_close_supplied_entry_spot() -> None:
service = BacktestPageService()
entry_spot = service.validate_preview_inputs(
symbol="GLD",
start_date=date(2024, 1, 2),
end_date=date(2024, 1, 8),
template_slug="protective-put-atm-12m",
underlying_units=1000.0,
loan_amount=68000.0,
margin_call_ltv=0.75,
entry_spot=100.005,
)
assert entry_spot == 100.0
def test_backtest_preview_validation_rejects_mismatched_supplied_entry_spot() -> None:
service = BacktestPageService()
@@ -200,3 +220,17 @@ def test_backtest_preview_validation_rejects_mismatched_supplied_entry_spot() ->
margin_call_ltv=0.75,
entry_spot=99.0,
)
def test_backtest_page_service_does_not_mutate_injected_backtest_service() -> None:
provider = SyntheticHistoricalProvider(
source=StaticBacktestSource(),
implied_volatility=0.2,
risk_free_rate=0.01,
)
injected_service = BacktestService(provider=provider)
BacktestPageService(backtest_service=injected_service)
history = injected_service.provider.load_history("GLD", date(2024, 1, 3), date(2024, 1, 3))
assert history[0].close == 123.0