core/tests/components/meteo_france/conftest.py

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