feat(service): open-meteo enrichi (sol, ETP, past_days, humidité) + tests
- Remplace le service meteo.py minimal par une version enrichie : past_days=7 + forecast=8, champs humidite_moy, sol_0cm, etp_mm - Corrige les noms de champs API (weather_code, wind_speed_10m_max) et passe les paramètres daily en liste de tuples pour compatibilité - Ajoute fetch_and_store_forecast() pour le scheduler (Task 6) - Conserve fetch_forecast() pour compatibilité ascendante (GET /api/meteo) - Crée backend/tests/test_meteo.py (test_health passe, 3 autres échouent en attente des endpoints Task 7) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
33
backend/tests/test_meteo.py
Normal file
33
backend/tests/test_meteo.py
Normal file
@@ -0,0 +1,33 @@
|
||||
"""Tests du service météo et des endpoints."""
|
||||
|
||||
|
||||
def test_health(client):
|
||||
r = client.get("/api/health")
|
||||
assert r.status_code == 200
|
||||
|
||||
|
||||
def test_meteo_tableau_vide(client):
|
||||
"""Le tableau fonctionne même si les tables sont vides."""
|
||||
r = client.get("/api/meteo/tableau")
|
||||
assert r.status_code == 200
|
||||
data = r.json()
|
||||
assert "rows" in data
|
||||
assert isinstance(data["rows"], list)
|
||||
# 15 lignes attendues (7 passé + J0 + 7 futur)
|
||||
assert len(data["rows"]) == 15
|
||||
|
||||
|
||||
def test_meteo_station_current_vide(client):
|
||||
"""Retourne null si aucune donnée station."""
|
||||
r = client.get("/api/meteo/station/current")
|
||||
assert r.status_code == 200
|
||||
# Peut être null ou un objet
|
||||
assert r.json() is None or isinstance(r.json(), dict)
|
||||
|
||||
|
||||
def test_meteo_previsions(client):
|
||||
"""Retourne une liste de jours de prévisions."""
|
||||
r = client.get("/api/meteo/previsions")
|
||||
assert r.status_code == 200
|
||||
data = r.json()
|
||||
assert "days" in data
|
||||
Reference in New Issue
Block a user