refactor(BT-001C): share historical fixture provider

This commit is contained in:
Bu5hm4nn
2026-03-27 21:41:50 +01:00
parent 477514f838
commit 554a41a060
8 changed files with 236 additions and 110 deletions

View File

@@ -13,7 +13,6 @@ notes:
- Pre-alpha policy: we may cut or replace old features without backward compatibility until alpha is declared.
- Alpha migration policy: once alpha is declared, compatibility only needs to move forward; backward migrations are not required.
priority_queue:
- BT-001C
- EXEC-001
- EXEC-002
- DATA-002A
@@ -22,6 +21,7 @@ priority_queue:
- BT-003
- BT-002A
recently_completed:
- BT-001C
- BT-002
- PORT-003
- BT-003B
@@ -45,7 +45,6 @@ states:
- EXEC-001
- EXEC-002
- BT-003
- BT-001C
- BT-002A
in_progress: []
done:
@@ -62,6 +61,7 @@ states:
- EXEC-001A
- BT-001
- BT-001A
- BT-001C
- BT-002
- BT-003A
- BT-003B

View File

@@ -1,14 +0,0 @@
id: BT-001C
title: Shared Historical Fixture/Test Provider Cleanup
status: backlog
priority: P2
effort: S
depends_on:
- BT-001A
- BT-003A
tags: [backtesting, test-infra]
summary: Centralize deterministic historical fixture logic used by browser-tested backtest UIs.
acceptance_criteria:
- Deterministic historical fixture/provider logic is centralized.
- Supported seeded windows are explicit and fail closed outside allowed ranges.
- Both /backtests and /event-comparison use the shared deterministic provider.

View File

@@ -0,0 +1,18 @@
id: BT-001C
title: Shared Historical Fixture/Test Provider Cleanup
status: done
priority: P2
effort: S
depends_on:
- BT-001A
- BT-003A
tags:
- backtesting
- test-infra
summary: Deterministic historical fixture logic for browser-tested backtest UIs is now centralized behind a shared fixture source used by both `/backtests` and `/event-comparison`.
completed_notes:
- Added `app/services/backtesting/fixture_source.py` with shared seeded GLD fixture history and explicit exact-vs-bounded window policies.
- Updated `app/services/backtesting/ui_service.py` so the `/backtests` page uses the shared fixture source in exact-window mode and still fails closed outside the seeded BT-001A range.
- Updated `app/services/event_comparison_ui.py` so the `/event-comparison` page uses the same shared fixture source in bounded-window mode for preset subranges inside the seeded BT-003A fixture window.
- Added focused regression coverage in `tests/test_backtesting_fixture_source.py` proving the shared source enforces exact and bounded policies explicitly and that both page services use the centralized fixture source.
- During this implementation loop, local Docker validation stayed green on the affected historical routes: `/health` returned OK and `tests/test_e2e_playwright.py` passed against the Docker-served app.