50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
"""Meteo-France generic test utils."""
|
|
|
|
from unittest.mock import patch
|
|
|
|
from meteofrance_api.model import CurrentPhenomenons, Forecast, Rain
|
|
import pytest
|
|
|
|
from homeassistant.components.meteo_france.const import CONF_CITY, DOMAIN
|
|
from homeassistant.config_entries import SOURCE_USER
|
|
from homeassistant.const import CONF_LATITUDE, CONF_LONGITUDE
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from tests.common import MockConfigEntry, load_json_object_fixture
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def patch_requests():
|
|
"""Stub out services that makes requests."""
|
|
with patch("homeassistant.components.meteo_france.MeteoFranceClient") as mock_data:
|
|
mock_data = mock_data.return_value
|
|
mock_data.get_forecast.return_value = Forecast(
|
|
load_json_object_fixture("raw_forecast.json", DOMAIN)
|
|
)
|
|
mock_data.get_rain.return_value = Rain(
|
|
load_json_object_fixture("raw_rain.json", DOMAIN)
|
|
)
|
|
mock_data.get_warning_current_phenomenoms.return_value = CurrentPhenomenons(
|
|
load_json_object_fixture("raw_warning_current_phenomenoms.json", DOMAIN)
|
|
)
|
|
yield mock_data
|
|
|
|
|
|
@pytest.fixture(name="config_entry")
|
|
def get_config_entry(hass: HomeAssistant) -> MockConfigEntry:
|
|
"""Create and register mock config entry."""
|
|
entry_data = {
|
|
CONF_CITY: "La Clusaz",
|
|
CONF_LATITUDE: 45.90417,
|
|
CONF_LONGITUDE: 6.42306,
|
|
}
|
|
config_entry = MockConfigEntry(
|
|
domain=DOMAIN,
|
|
source=SOURCE_USER,
|
|
unique_id=f"{entry_data[CONF_LATITUDE], entry_data[CONF_LONGITUDE]}",
|
|
title=entry_data[CONF_CITY],
|
|
data=entry_data,
|
|
)
|
|
config_entry.add_to_hass(hass)
|
|
return config_entry
|