mirror of
https://github.com/jdejaegh/irm-kmi-api.git
synced 2025-06-26 20:05:40 +02:00
87 lines
No EOL
3.6 KiB
Python
87 lines
No EOL
3.6 KiB
Python
import pytest
|
|
|
|
from irm_kmi_api import RadarForecast
|
|
from tests.conftest import get_api_with_data, assert_all_serializable
|
|
|
|
|
|
def test_radar_forecast() -> None:
|
|
api = get_api_with_data("forecast.json")
|
|
result = api.get_radar_forecast()
|
|
|
|
expected = [
|
|
RadarForecast(datetime="2023-12-26T17:00:00+01:00", native_precipitation=0, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T17:10:00+01:00", native_precipitation=0, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T17:20:00+01:00", native_precipitation=0, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T17:30:00+01:00", native_precipitation=0, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T17:40:00+01:00", native_precipitation=0.1, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T17:50:00+01:00", native_precipitation=0.01, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T18:00:00+01:00", native_precipitation=0.12, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T18:10:00+01:00", native_precipitation=1.2, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T18:20:00+01:00", native_precipitation=2, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T18:30:00+01:00", native_precipitation=0, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min'),
|
|
RadarForecast(datetime="2023-12-26T18:40:00+01:00", native_precipitation=0, might_rain=False,
|
|
rain_forecast_max=0, rain_forecast_min=0, unit='mm/10min')
|
|
]
|
|
|
|
assert expected == result
|
|
|
|
|
|
def test_radar_forecast_rain_interval() -> None:
|
|
api = get_api_with_data('forecast_with_rain_on_radar.json')
|
|
result = api.get_radar_forecast()
|
|
|
|
_12 = RadarForecast(
|
|
datetime='2024-05-30T18:00:00+02:00',
|
|
native_precipitation=0.89,
|
|
might_rain=True,
|
|
rain_forecast_max=1.12,
|
|
rain_forecast_min=0.50,
|
|
unit='mm/10min'
|
|
)
|
|
|
|
_13 = RadarForecast(
|
|
datetime="2024-05-30T18:10:00+02:00",
|
|
native_precipitation=0.83,
|
|
might_rain=True,
|
|
rain_forecast_max=1.09,
|
|
rain_forecast_min=0.64,
|
|
unit='mm/10min'
|
|
)
|
|
|
|
assert result[12] == _12
|
|
assert result[13] == _13
|
|
|
|
|
|
@pytest.mark.parametrize("expected,filename",
|
|
[
|
|
('mm/h', 'forecast_ams_no_ww.json'),
|
|
('mm/10min', 'forecast_out_of_benelux.json'),
|
|
('mm/10min', 'forecast_with_rain_on_radar.json'),
|
|
])
|
|
async def test_current_rainfall_unit(
|
|
expected,
|
|
filename
|
|
) -> None:
|
|
api = get_api_with_data(filename)
|
|
|
|
radar_forecast=api.get_radar_forecast()
|
|
|
|
for r in radar_forecast:
|
|
assert r.get('unit') == expected
|
|
|
|
def test_radar_serializable() -> None:
|
|
api = get_api_with_data("forecast.json")
|
|
|
|
result = api.get_radar_forecast()
|
|
|
|
assert_all_serializable(result) |