Skip to content

Commit 55476ef

Browse files
authored
Remove arbitrary forecast limit for meteo_lt (#155877)
1 parent 0e130d8 commit 55476ef

File tree

3 files changed

+111
-2
lines changed

3 files changed

+111
-2
lines changed

homeassistant/components/meteo_lt/weather.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ async def async_forecast_daily(self) -> list[Forecast] | None:
139139
forecasts_by_date[date].append(timestamp)
140140

141141
daily_forecasts = []
142-
for date in sorted(forecasts_by_date.keys())[:5]:
142+
for date in sorted(forecasts_by_date.keys()):
143143
day_forecasts = forecasts_by_date[date]
144144
if not day_forecasts:
145145
continue
@@ -186,5 +186,5 @@ async def async_forecast_hourly(self) -> list[Forecast] | None:
186186
return None
187187
return [
188188
self._convert_forecast_data(forecast_data)
189-
for forecast_data in self.coordinator.data.forecast_timestamps[:24]
189+
for forecast_data in self.coordinator.data.forecast_timestamps
190190
]

tests/components/meteo_lt/fixtures/forecast.json

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,84 @@
4848
"relativeHumidity": 65,
4949
"totalPrecipitation": 0.1,
5050
"conditionCode": "cloudy"
51+
},
52+
{
53+
"forecastTimeUtc": "2025-09-26 10:00:00",
54+
"airTemperature": 15.0,
55+
"feelsLikeTemperature": 15.0,
56+
"windSpeed": 3,
57+
"windGust": 9,
58+
"windDirection": 35,
59+
"cloudCover": 30,
60+
"seaLevelPressure": 1030,
61+
"relativeHumidity": 60,
62+
"totalPrecipitation": 0.2,
63+
"conditionCode": "cloudy"
64+
},
65+
{
66+
"forecastTimeUtc": "2025-09-27 10:00:00",
67+
"airTemperature": 16.0,
68+
"feelsLikeTemperature": 16.0,
69+
"windSpeed": 4,
70+
"windGust": 10,
71+
"windDirection": 40,
72+
"cloudCover": 35,
73+
"seaLevelPressure": 1029,
74+
"relativeHumidity": 55,
75+
"totalPrecipitation": 0.3,
76+
"conditionCode": "rainy"
77+
},
78+
{
79+
"forecastTimeUtc": "2025-09-28 10:00:00",
80+
"airTemperature": 17.0,
81+
"feelsLikeTemperature": 17.0,
82+
"windSpeed": 5,
83+
"windGust": 11,
84+
"windDirection": 45,
85+
"cloudCover": 40,
86+
"seaLevelPressure": 1028,
87+
"relativeHumidity": 50,
88+
"totalPrecipitation": 0.4,
89+
"conditionCode": "rainy"
90+
},
91+
{
92+
"forecastTimeUtc": "2025-09-29 10:00:00",
93+
"airTemperature": 18.0,
94+
"feelsLikeTemperature": 18.0,
95+
"windSpeed": 6,
96+
"windGust": 12,
97+
"windDirection": 50,
98+
"cloudCover": 45,
99+
"seaLevelPressure": 1027,
100+
"relativeHumidity": 45,
101+
"totalPrecipitation": 0.5,
102+
"conditionCode": "rainy"
103+
},
104+
{
105+
"forecastTimeUtc": "2025-09-30 10:00:00",
106+
"airTemperature": 19.0,
107+
"feelsLikeTemperature": 19.0,
108+
"windSpeed": 7,
109+
"windGust": 13,
110+
"windDirection": 55,
111+
"cloudCover": 50,
112+
"seaLevelPressure": 1026,
113+
"relativeHumidity": 40,
114+
"totalPrecipitation": 0.6,
115+
"conditionCode": "rainy"
116+
},
117+
{
118+
"forecastTimeUtc": "2025-10-01 10:00:00",
119+
"airTemperature": 20.0,
120+
"feelsLikeTemperature": 20.0,
121+
"windSpeed": 8,
122+
"windGust": 14,
123+
"windDirection": 60,
124+
"cloudCover": 55,
125+
"seaLevelPressure": 1025,
126+
"relativeHumidity": 35,
127+
"totalPrecipitation": 0.7,
128+
"conditionCode": "rainy"
51129
}
52130
]
53131
}

tests/components/meteo_lt/test_weather.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,34 @@ async def test_weather_entity(
3434
await hass.async_block_till_done()
3535

3636
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
37+
38+
39+
@pytest.mark.freeze_time("2025-09-25 9:00:00")
40+
async def test_forecast_no_limits(
41+
hass: HomeAssistant,
42+
mock_config_entry: MockConfigEntry,
43+
) -> None:
44+
"""Test that forecast returns all available data from API without limits."""
45+
mock_config_entry.add_to_hass(hass)
46+
await hass.config_entries.async_setup(mock_config_entry.entry_id)
47+
await hass.async_block_till_done()
48+
49+
result = await hass.services.async_call(
50+
"weather",
51+
"get_forecasts",
52+
{"entity_id": "weather.vilnius", "type": "hourly"},
53+
blocking=True,
54+
return_response=True,
55+
)
56+
hourly_forecasts = result["weather.vilnius"]["forecast"]
57+
assert len(hourly_forecasts) == 9
58+
59+
result = await hass.services.async_call(
60+
"weather",
61+
"get_forecasts",
62+
{"entity_id": "weather.vilnius", "type": "daily"},
63+
blocking=True,
64+
return_response=True,
65+
)
66+
daily_forecasts = result["weather.vilnius"]["forecast"]
67+
assert len(daily_forecasts) == 7

0 commit comments

Comments
 (0)