Spaces:
Runtime error
Runtime error
| from __future__ import annotations | |
| import pandas as pd | |
| import pytest | |
| from ingest.sofascore.paths import MATCH_STATS_PARQUET | |
| from pipelines.lake_query import lake_summary, query_lake, team_sofascore_summary | |
| duckdb = pytest.importorskip("duckdb") | |
| def test_lake_summary_includes_sofascore(tmp_path, monkeypatch): | |
| sofascore_dir = tmp_path / "sofascore" | |
| sofascore_dir.mkdir() | |
| pd.DataFrame( | |
| [ | |
| { | |
| "event_id": 1, | |
| "home_team": "Brasil", | |
| "away_team": "Argentina", | |
| "match_date": "2022-11-20", | |
| "home_xg": 1.8, | |
| "away_xg": 0.9, | |
| "home_corners": 5, | |
| "away_corners": 3, | |
| } | |
| ] | |
| ).to_parquet(sofascore_dir / MATCH_STATS_PARQUET, index=False) | |
| lake_root = tmp_path / "lake" | |
| monkeypatch.setattr("pipelines.lake_query.settings.lake_root", lake_root) | |
| monkeypatch.setattr("pipelines.lake_query.settings.sofascore_stats_dir", sofascore_dir) | |
| summary = lake_summary() | |
| assert summary["layers"]["sofascore"]["available"] is True | |
| assert summary["layers"]["sofascore"]["rows"] == 1 | |
| def test_team_sofascore_summary(tmp_path, monkeypatch): | |
| sofascore_dir = tmp_path / "sofascore" | |
| sofascore_dir.mkdir() | |
| pd.DataFrame( | |
| [ | |
| { | |
| "event_id": 1, | |
| "home_team": "Brasil", | |
| "away_team": "Argentina", | |
| "match_date": "2022-11-20", | |
| "home_xg": 1.8, | |
| "away_xg": 0.9, | |
| "home_corners": 5, | |
| "away_corners": 3, | |
| }, | |
| { | |
| "event_id": 2, | |
| "home_team": "Portugal", | |
| "away_team": "Brasil", | |
| "match_date": "2022-12-09", | |
| "home_xg": 1.1, | |
| "away_xg": 2.0, | |
| "home_corners": 4, | |
| "away_corners": 6, | |
| }, | |
| ] | |
| ).to_parquet(sofascore_dir / MATCH_STATS_PARQUET, index=False) | |
| lake_root = tmp_path / "lake" | |
| monkeypatch.setattr("pipelines.lake_query.settings.lake_root", lake_root) | |
| monkeypatch.setattr("pipelines.lake_query.settings.sofascore_stats_dir", sofascore_dir) | |
| df = team_sofascore_summary("Brasil", limit=5) | |
| assert len(df) == 2 | |
| avg = query_lake( | |
| "SELECT ROUND(AVG(home_xg), 2) AS avg_home_xg " | |
| "FROM sofascore WHERE home_team = 'Brasil'" | |
| ) | |
| assert float(avg.iloc[0]["avg_home_xg"]) == 1.8 | |