fix(backend,airflow,ml): applique les corrections de revue sur la PR #162

This commit is contained in:
Dorian
2026-09-23 15:19:39 +02:00
parent 101ebd404f
commit b78322bd61
7 changed files with 328 additions and 189 deletions
+13 -6
View File
@@ -45,11 +45,13 @@ def test_load_from_database_deduplicates_two_sources_at_the_same_instant(
# `uq_reading_source` autorise deux lignes au meme (site_id, timestamp) des que `source`
# differe : le garde-fou vit dans `mock_api_import.py`, pas dans le schema. Le chargeur ML
# doit donc imposer lui-meme "une ligne par (site_id, timestamp)", pas la supposer.
#
# `csv` est inseree en premier (reading_id le plus bas) et `api_history` en second (le plus
# haut) : un depart par `reading_id DESC` seul choisirait `api_history` a tort. Seule la
# preference explicite pour `source='csv'` fait gagner le bon reading_id ici, et le test
# cesserait de proteger cette regle si l'ordre d'insertion etait inverse.
site_id = insere_site(connexion_ml)
dataset_id = insere_dataset(connexion_ml)
insere_lecture(
connexion_ml, site_id, instant=ANCRAGE, consumption_kwh=10.0, source="api_history"
)
insere_lecture(
connexion_ml,
site_id,
@@ -58,6 +60,9 @@ def test_load_from_database_deduplicates_two_sources_at_the_same_instant(
source="csv",
dataset_id=dataset_id,
)
insere_lecture(
connexion_ml, site_id, instant=ANCRAGE, consumption_kwh=10.0, source="api_history"
)
frame = load_from_database(connexion_ml)
@@ -69,11 +74,10 @@ def test_load_from_database_deduplicates_two_sources_at_the_same_instant(
def test_load_recent_from_database_prefers_csv_when_two_sources_share_an_instant(
connexion_ml: Connection,
) -> None:
# Meme ordre d'insertion que ci-dessus, et pour la meme raison : `csv` doit gagner malgre un
# `reading_id` plus bas que celui d'`api_history`.
site_id = insere_site(connexion_ml)
dataset_id = insere_dataset(connexion_ml)
insere_lecture(
connexion_ml, site_id, instant=ANCRAGE, consumption_kwh=10.0, source="api_history"
)
insere_lecture(
connexion_ml,
site_id,
@@ -82,6 +86,9 @@ def test_load_recent_from_database_prefers_csv_when_two_sources_share_an_instant
source="csv",
dataset_id=dataset_id,
)
insere_lecture(
connexion_ml, site_id, instant=ANCRAGE, consumption_kwh=10.0, source="api_history"
)
frame = load_recent_from_database(
connexion_ml, since=ANCRAGE, until=ANCRAGE + timedelta(hours=3)