Files
jardin/backend/tests/test_meteo.py
gilles 3b1601a07b 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>
2026-02-22 14:46:37 +01:00

34 lines
977 B
Python

"""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