fix(pre-alpha): preserve injected provider identity

This commit is contained in:
Bu5hm4nn
2026-03-26 12:32:52 +01:00
parent 52d943e614
commit 91f67cd414
2 changed files with 34 additions and 5 deletions

View File

@@ -235,7 +235,31 @@ def test_backtest_page_service_does_not_mutate_injected_backtest_service() -> No
history = injected_service.provider.load_history("GLD", date(2024, 1, 3), date(2024, 1, 3))
assert history[0].close == 123.0
assert page_service.template_service is injected_service.template_service
assert page_service.backtest_service is not injected_service
assert page_service.backtest_service.provider.implied_volatility == 0.2
assert page_service.backtest_service.provider.risk_free_rate == 0.01
seeded_history = page_service.backtest_service.provider.load_history("GLD", date(2024, 1, 2), date(2024, 1, 8))
assert seeded_history[0].close == 100.0
def test_backtest_page_service_uses_injected_provider_identity_in_provider_ref() -> None:
class CustomProvider(SyntheticHistoricalProvider):
provider_id = "custom_v1"
pricing_mode = "custom_mode"
provider = CustomProvider(source=StaticBacktestSource(), implied_volatility=0.2, risk_free_rate=0.01)
injected_service = BacktestService(provider=provider)
page_service = BacktestPageService(backtest_service=injected_service)
result = page_service.run_read_only_scenario(
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,
)
assert result.scenario.provider_ref.provider_id == "custom_v1"
assert result.scenario.provider_ref.pricing_mode == "custom_mode"