49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
"""Tests for AccuWeather."""
|
|
import json
|
|
|
|
from homeassistant.components.accuweather.const import DOMAIN
|
|
|
|
from tests.async_mock import patch
|
|
from tests.common import MockConfigEntry, load_fixture
|
|
|
|
|
|
async def init_integration(
|
|
hass, forecast=False, unsupported_icon=False
|
|
) -> MockConfigEntry:
|
|
"""Set up the AccuWeather integration in Home Assistant."""
|
|
options = {}
|
|
if forecast:
|
|
options["forecast"] = True
|
|
|
|
entry = MockConfigEntry(
|
|
domain=DOMAIN,
|
|
title="Home",
|
|
unique_id="0123456",
|
|
data={
|
|
"api_key": "32-character-string-1234567890qw",
|
|
"latitude": 55.55,
|
|
"longitude": 122.12,
|
|
"name": "Home",
|
|
},
|
|
options=options,
|
|
)
|
|
|
|
current = json.loads(load_fixture("accuweather/current_conditions_data.json"))
|
|
forecast = json.loads(load_fixture("accuweather/forecast_data.json"))
|
|
|
|
if unsupported_icon:
|
|
current["WeatherIcon"] = 999
|
|
|
|
with patch(
|
|
"homeassistant.components.accuweather.AccuWeather.async_get_current_conditions",
|
|
return_value=current,
|
|
), patch(
|
|
"homeassistant.components.accuweather.AccuWeather.async_get_forecast",
|
|
return_value=forecast,
|
|
):
|
|
entry.add_to_hass(hass)
|
|
await hass.config_entries.async_setup(entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
|
|
return entry
|