amarorn / tests /test_lake_query.py
beAnalytic's picture
feat: sync main with feature/superbet-live-inplay
16c19b8 verified
Raw
History Blame Contribute Delete
2.5 kB
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