Deprecate weather.get_forecast (#102534)
* Deprecate weather.get_forecast * Rename forecast to get_forecasts * raise issue for use of deprecated service * Add fix_flow * Add service translation/yaml
This commit is contained in:
parent
41224f1674
commit
173f4760bc
25 changed files with 18726 additions and 76 deletions
|
@ -195,6 +195,418 @@
|
|||
]),
|
||||
})
|
||||
# ---
|
||||
# name: test_forecast_service[forecast]
|
||||
dict({
|
||||
'weather.smhi_test': dict({
|
||||
'forecast': list([
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-07T12:00:00',
|
||||
'humidity': 96,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 991.0,
|
||||
'temperature': 18.0,
|
||||
'templow': 15.0,
|
||||
'wind_bearing': 114,
|
||||
'wind_gust_speed': 32.76,
|
||||
'wind_speed': 10.08,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'rainy',
|
||||
'datetime': '2023-08-08T12:00:00',
|
||||
'humidity': 97,
|
||||
'precipitation': 10.6,
|
||||
'pressure': 984.0,
|
||||
'temperature': 15.0,
|
||||
'templow': 11.0,
|
||||
'wind_bearing': 183,
|
||||
'wind_gust_speed': 27.36,
|
||||
'wind_speed': 11.16,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'rainy',
|
||||
'datetime': '2023-08-09T12:00:00',
|
||||
'humidity': 95,
|
||||
'precipitation': 6.3,
|
||||
'pressure': 1001.0,
|
||||
'temperature': 12.0,
|
||||
'templow': 11.0,
|
||||
'wind_bearing': 166,
|
||||
'wind_gust_speed': 48.24,
|
||||
'wind_speed': 18.0,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-10T12:00:00',
|
||||
'humidity': 75,
|
||||
'precipitation': 4.8,
|
||||
'pressure': 1011.0,
|
||||
'temperature': 14.0,
|
||||
'templow': 10.0,
|
||||
'wind_bearing': 174,
|
||||
'wind_gust_speed': 29.16,
|
||||
'wind_speed': 11.16,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-11T12:00:00',
|
||||
'humidity': 69,
|
||||
'precipitation': 0.6,
|
||||
'pressure': 1015.0,
|
||||
'temperature': 18.0,
|
||||
'templow': 12.0,
|
||||
'wind_bearing': 197,
|
||||
'wind_gust_speed': 27.36,
|
||||
'wind_speed': 10.08,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-12T12:00:00',
|
||||
'humidity': 82,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 1014.0,
|
||||
'temperature': 17.0,
|
||||
'templow': 12.0,
|
||||
'wind_bearing': 225,
|
||||
'wind_gust_speed': 28.08,
|
||||
'wind_speed': 8.64,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 75,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-13T12:00:00',
|
||||
'humidity': 59,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 1013.0,
|
||||
'temperature': 20.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 234,
|
||||
'wind_gust_speed': 35.64,
|
||||
'wind_speed': 14.76,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-14T12:00:00',
|
||||
'humidity': 56,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 1015.0,
|
||||
'temperature': 21.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 216,
|
||||
'wind_gust_speed': 33.12,
|
||||
'wind_speed': 13.68,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 88,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-15T12:00:00',
|
||||
'humidity': 64,
|
||||
'precipitation': 3.6,
|
||||
'pressure': 1014.0,
|
||||
'temperature': 20.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 226,
|
||||
'wind_gust_speed': 33.12,
|
||||
'wind_speed': 13.68,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 75,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-16T12:00:00',
|
||||
'humidity': 61,
|
||||
'precipitation': 2.4,
|
||||
'pressure': 1014.0,
|
||||
'temperature': 20.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 233,
|
||||
'wind_gust_speed': 33.48,
|
||||
'wind_speed': 14.04,
|
||||
}),
|
||||
]),
|
||||
}),
|
||||
})
|
||||
# ---
|
||||
# name: test_forecast_service[get_forecast]
|
||||
dict({
|
||||
'forecast': list([
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-07T12:00:00',
|
||||
'humidity': 96,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 991.0,
|
||||
'temperature': 18.0,
|
||||
'templow': 15.0,
|
||||
'wind_bearing': 114,
|
||||
'wind_gust_speed': 32.76,
|
||||
'wind_speed': 10.08,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'rainy',
|
||||
'datetime': '2023-08-08T12:00:00',
|
||||
'humidity': 97,
|
||||
'precipitation': 10.6,
|
||||
'pressure': 984.0,
|
||||
'temperature': 15.0,
|
||||
'templow': 11.0,
|
||||
'wind_bearing': 183,
|
||||
'wind_gust_speed': 27.36,
|
||||
'wind_speed': 11.16,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'rainy',
|
||||
'datetime': '2023-08-09T12:00:00',
|
||||
'humidity': 95,
|
||||
'precipitation': 6.3,
|
||||
'pressure': 1001.0,
|
||||
'temperature': 12.0,
|
||||
'templow': 11.0,
|
||||
'wind_bearing': 166,
|
||||
'wind_gust_speed': 48.24,
|
||||
'wind_speed': 18.0,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-10T12:00:00',
|
||||
'humidity': 75,
|
||||
'precipitation': 4.8,
|
||||
'pressure': 1011.0,
|
||||
'temperature': 14.0,
|
||||
'templow': 10.0,
|
||||
'wind_bearing': 174,
|
||||
'wind_gust_speed': 29.16,
|
||||
'wind_speed': 11.16,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-11T12:00:00',
|
||||
'humidity': 69,
|
||||
'precipitation': 0.6,
|
||||
'pressure': 1015.0,
|
||||
'temperature': 18.0,
|
||||
'templow': 12.0,
|
||||
'wind_bearing': 197,
|
||||
'wind_gust_speed': 27.36,
|
||||
'wind_speed': 10.08,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-12T12:00:00',
|
||||
'humidity': 82,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 1014.0,
|
||||
'temperature': 17.0,
|
||||
'templow': 12.0,
|
||||
'wind_bearing': 225,
|
||||
'wind_gust_speed': 28.08,
|
||||
'wind_speed': 8.64,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 75,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-13T12:00:00',
|
||||
'humidity': 59,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 1013.0,
|
||||
'temperature': 20.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 234,
|
||||
'wind_gust_speed': 35.64,
|
||||
'wind_speed': 14.76,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-14T12:00:00',
|
||||
'humidity': 56,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 1015.0,
|
||||
'temperature': 21.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 216,
|
||||
'wind_gust_speed': 33.12,
|
||||
'wind_speed': 13.68,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 88,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-15T12:00:00',
|
||||
'humidity': 64,
|
||||
'precipitation': 3.6,
|
||||
'pressure': 1014.0,
|
||||
'temperature': 20.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 226,
|
||||
'wind_gust_speed': 33.12,
|
||||
'wind_speed': 13.68,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 75,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-16T12:00:00',
|
||||
'humidity': 61,
|
||||
'precipitation': 2.4,
|
||||
'pressure': 1014.0,
|
||||
'temperature': 20.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 233,
|
||||
'wind_gust_speed': 33.48,
|
||||
'wind_speed': 14.04,
|
||||
}),
|
||||
]),
|
||||
})
|
||||
# ---
|
||||
# name: test_forecast_service[get_forecasts]
|
||||
dict({
|
||||
'weather.smhi_test': dict({
|
||||
'forecast': list([
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-07T12:00:00',
|
||||
'humidity': 96,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 991.0,
|
||||
'temperature': 18.0,
|
||||
'templow': 15.0,
|
||||
'wind_bearing': 114,
|
||||
'wind_gust_speed': 32.76,
|
||||
'wind_speed': 10.08,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'rainy',
|
||||
'datetime': '2023-08-08T12:00:00',
|
||||
'humidity': 97,
|
||||
'precipitation': 10.6,
|
||||
'pressure': 984.0,
|
||||
'temperature': 15.0,
|
||||
'templow': 11.0,
|
||||
'wind_bearing': 183,
|
||||
'wind_gust_speed': 27.36,
|
||||
'wind_speed': 11.16,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'rainy',
|
||||
'datetime': '2023-08-09T12:00:00',
|
||||
'humidity': 95,
|
||||
'precipitation': 6.3,
|
||||
'pressure': 1001.0,
|
||||
'temperature': 12.0,
|
||||
'templow': 11.0,
|
||||
'wind_bearing': 166,
|
||||
'wind_gust_speed': 48.24,
|
||||
'wind_speed': 18.0,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-10T12:00:00',
|
||||
'humidity': 75,
|
||||
'precipitation': 4.8,
|
||||
'pressure': 1011.0,
|
||||
'temperature': 14.0,
|
||||
'templow': 10.0,
|
||||
'wind_bearing': 174,
|
||||
'wind_gust_speed': 29.16,
|
||||
'wind_speed': 11.16,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-11T12:00:00',
|
||||
'humidity': 69,
|
||||
'precipitation': 0.6,
|
||||
'pressure': 1015.0,
|
||||
'temperature': 18.0,
|
||||
'templow': 12.0,
|
||||
'wind_bearing': 197,
|
||||
'wind_gust_speed': 27.36,
|
||||
'wind_speed': 10.08,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'cloudy',
|
||||
'datetime': '2023-08-12T12:00:00',
|
||||
'humidity': 82,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 1014.0,
|
||||
'temperature': 17.0,
|
||||
'templow': 12.0,
|
||||
'wind_bearing': 225,
|
||||
'wind_gust_speed': 28.08,
|
||||
'wind_speed': 8.64,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 75,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-13T12:00:00',
|
||||
'humidity': 59,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 1013.0,
|
||||
'temperature': 20.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 234,
|
||||
'wind_gust_speed': 35.64,
|
||||
'wind_speed': 14.76,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-14T12:00:00',
|
||||
'humidity': 56,
|
||||
'precipitation': 0.0,
|
||||
'pressure': 1015.0,
|
||||
'temperature': 21.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 216,
|
||||
'wind_gust_speed': 33.12,
|
||||
'wind_speed': 13.68,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 88,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-15T12:00:00',
|
||||
'humidity': 64,
|
||||
'precipitation': 3.6,
|
||||
'pressure': 1014.0,
|
||||
'temperature': 20.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 226,
|
||||
'wind_gust_speed': 33.12,
|
||||
'wind_speed': 13.68,
|
||||
}),
|
||||
dict({
|
||||
'cloud_coverage': 75,
|
||||
'condition': 'partlycloudy',
|
||||
'datetime': '2023-08-16T12:00:00',
|
||||
'humidity': 61,
|
||||
'precipitation': 2.4,
|
||||
'pressure': 1014.0,
|
||||
'temperature': 20.0,
|
||||
'templow': 14.0,
|
||||
'wind_bearing': 233,
|
||||
'wind_gust_speed': 33.48,
|
||||
'wind_speed': 14.04,
|
||||
}),
|
||||
]),
|
||||
}),
|
||||
})
|
||||
# ---
|
||||
# name: test_forecast_services
|
||||
dict({
|
||||
'cloud_coverage': 100,
|
||||
|
|
|
@ -20,7 +20,8 @@ from homeassistant.components.weather import (
|
|||
ATTR_WEATHER_WIND_SPEED,
|
||||
ATTR_WEATHER_WIND_SPEED_UNIT,
|
||||
DOMAIN as WEATHER_DOMAIN,
|
||||
SERVICE_GET_FORECAST,
|
||||
LEGACY_SERVICE_GET_FORECAST,
|
||||
SERVICE_GET_FORECASTS,
|
||||
)
|
||||
from homeassistant.components.weather.const import (
|
||||
ATTR_WEATHER_CLOUD_COVERAGE,
|
||||
|
@ -443,11 +444,19 @@ async def test_forecast_services_lack_of_data(
|
|||
assert forecast1 is None
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("service"),
|
||||
[
|
||||
SERVICE_GET_FORECASTS,
|
||||
LEGACY_SERVICE_GET_FORECAST,
|
||||
],
|
||||
)
|
||||
async def test_forecast_service(
|
||||
hass: HomeAssistant,
|
||||
aioclient_mock: AiohttpClientMocker,
|
||||
api_response: str,
|
||||
snapshot: SnapshotAssertion,
|
||||
service: str,
|
||||
) -> None:
|
||||
"""Test forecast service."""
|
||||
uri = APIURL_TEMPLATE.format(
|
||||
|
@ -463,7 +472,7 @@ async def test_forecast_service(
|
|||
|
||||
response = await hass.services.async_call(
|
||||
WEATHER_DOMAIN,
|
||||
SERVICE_GET_FORECAST,
|
||||
service,
|
||||
{"entity_id": ENTITY_ID, "type": "daily"},
|
||||
blocking=True,
|
||||
return_response=True,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue