style: format test file with black

This commit is contained in:
Bu5hm4nn
2026-03-31 23:55:11 +02:00
parent 6f9e31a69e
commit 66d6eb3df2

View File

@@ -287,70 +287,70 @@ def test_homepage_and_options_page_render() -> None:
def test_backtest_page_loads_with_valid_databento_dates() -> None: def test_backtest_page_loads_with_valid_databento_dates() -> None:
"""E2E test: Backtest page loads and validates Databento date range. """E2E test: Backtest page loads and validates Databento date range.
Regression test for CORE-003: Ensures backtest page handles Databento Regression test for CORE-003: Ensures backtest page handles Databento
dataset date constraints gracefully without 500 errors. dataset date constraints gracefully without 500 errors.
""" """
with sync_playwright() as p: with sync_playwright() as p:
browser = p.chromium.launch(headless=True) browser = p.chromium.launch(headless=True)
page = browser.new_page(viewport={"width": 1440, "height": 1000}) page = browser.new_page(viewport={"width": 1440, "height": 1000})
# Navigate to backtests page # Navigate to backtests page
page.goto(f"{BASE_URL}/backtests", wait_until="domcontentloaded", timeout=30000) page.goto(f"{BASE_URL}/backtests", wait_until="domcontentloaded", timeout=30000)
page.wait_for_load_state("networkidle", timeout=15000) page.wait_for_load_state("networkidle", timeout=15000)
# Verify page loaded without 500 error # Verify page loaded without 500 error
expect(page.locator("text=Scenario Configuration")).to_be_visible(timeout=10000) expect(page.locator("text=Scenario Configuration")).to_be_visible(timeout=10000)
# Verify data source is set to Databento by default # Verify data source is set to Databento by default
data_source = page.locator("[data-testid=data-source-select]") data_source = page.locator("[data-testid=data-source-select]")
expect(data_source).to_be_visible() expect(data_source).to_be_visible()
# Verify dataset is XNAS.BASIC # Verify dataset is XNAS.BASIC
dataset = page.locator("[data-testid=dataset-select]") dataset = page.locator("[data-testid=dataset-select]")
expect(dataset).to_be_visible() expect(dataset).to_be_visible()
# Verify date range hint shows correct minimum date for XNAS.BASIC # Verify date range hint shows correct minimum date for XNAS.BASIC
date_hint = page.locator("text=XNAS.BASIC data available from 2024-07-01") date_hint = page.locator("text=XNAS.BASIC data available from 2024-07-01")
expect(date_hint).to_be_visible(timeout=5000) expect(date_hint).to_be_visible(timeout=5000)
# Verify start date input is set to valid date (2024-07-01 or later) # Verify start date input is set to valid date (2024-07-01 or later)
start_input = page.locator("input[placeholder*='Start date']").first start_input = page.locator("input[placeholder*='Start date']").first
start_value = start_input.input_value() start_value = start_input.input_value()
assert start_value >= "2024-07-01", f"Start date {start_value} should be >= 2024-07-01" assert start_value >= "2024-07-01", f"Start date {start_value} should be >= 2024-07-01"
# Verify no 500 error on page # Verify no 500 error on page
error_500 = page.locator("text=500").count() error_500 = page.locator("text=500").count()
assert error_500 == 0, "Page should not show 500 error" assert error_500 == 0, "Page should not show 500 error"
page.screenshot(path=str(ARTIFACTS / "backtest_loads.png"), full_page=True) page.screenshot(path=str(ARTIFACTS / "backtest_loads.png"), full_page=True)
browser.close() browser.close()
def test_backtest_page_handles_invalid_dates_gracefully() -> None: def test_backtest_page_handles_invalid_dates_gracefully() -> None:
"""E2E test: Backtest page shows validation error for invalid dates. """E2E test: Backtest page shows validation error for invalid dates.
Regression test: Ensures user-friendly error instead of 500 when Regression test: Ensures user-friendly error instead of 500 when
dates are before dataset availability. dates are before dataset availability.
""" """
with sync_playwright() as p: with sync_playwright() as p:
browser = p.chromium.launch(headless=True) browser = p.chromium.launch(headless=True)
page = browser.new_page(viewport={"width": 1440, "height": 1000}) page = browser.new_page(viewport={"width": 1440, "height": 1000})
page.goto(f"{BASE_URL}/backtests", wait_until="domcontentloaded", timeout=30000) page.goto(f"{BASE_URL}/backtests", wait_until="domcontentloaded", timeout=30000)
page.wait_for_load_state("networkidle", timeout=15000) page.wait_for_load_state("networkidle", timeout=15000)
# Set invalid start date (before 2024-07-01) # Set invalid start date (before 2024-07-01)
start_input = page.locator("input[placeholder*='Start date']").first start_input = page.locator("input[placeholder*='Start date']").first
start_input.fill("2024-03-01") start_input.fill("2024-03-01")
start_input.press("Tab") # Trigger blur/validation start_input.press("Tab") # Trigger blur/validation
page.wait_for_timeout(2000) page.wait_for_timeout(2000)
# Should show validation error or prevent running, not crash # Should show validation error or prevent running, not crash
# Verify no 500 error # Verify no 500 error
error_500 = page.locator("text=500").count() error_500 = page.locator("text=500").count()
assert error_500 == 0, "Page should not show 500 error for invalid dates" assert error_500 == 0, "Page should not show 500 error for invalid dates"
page.screenshot(path=str(ARTIFACTS / "backtest_invalid_dates.png"), full_page=True) page.screenshot(path=str(ARTIFACTS / "backtest_invalid_dates.png"), full_page=True)
browser.close() browser.close()