Handle not existing arrival/departure keys for here_travel_time (#83754)

* handle not existing arrival/departure keys

* Use more concise code

* Add test

* Add testcase for empty arrival/departure
This commit is contained in:
Kevin Stillhammer 2022-12-21 01:47:43 +01:00 committed by GitHub
parent 8a3fc2e82b
commit ba94485ca1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 13 deletions

View File

@ -32,16 +32,8 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
"""Set up HERE Travel Time from a config entry."""
api_key = config_entry.data[CONF_API_KEY]
arrival = (
dt.parse_time(config_entry.options[CONF_ARRIVAL_TIME])
if config_entry.options[CONF_ARRIVAL_TIME] is not None
else None
)
departure = (
dt.parse_time(config_entry.options[CONF_DEPARTURE_TIME])
if config_entry.options[CONF_DEPARTURE_TIME] is not None
else None
)
arrival = dt.parse_time(config_entry.options.get(CONF_ARRIVAL_TIME, ""))
departure = dt.parse_time(config_entry.options.get(CONF_DEPARTURE_TIME, ""))
here_travel_time_config = HERETravelTimeConfig(
destination_latitude=config_entry.data.get(CONF_DESTINATION_LATITUDE),

View File

@ -1,9 +1,17 @@
"""The test for the HERE Travel Time integration."""
from datetime import datetime
import pytest
from homeassistant.components.here_travel_time.config_flow import DEFAULT_OPTIONS
from homeassistant.components.here_travel_time.const import DOMAIN
from homeassistant.components.here_travel_time.const import (
CONF_ARRIVAL_TIME,
CONF_DEPARTURE_TIME,
CONF_ROUTE_MODE,
DOMAIN,
ROUTE_MODE_FASTEST,
)
from homeassistant.core import HomeAssistant
from .const import DEFAULT_CONFIG
@ -12,13 +20,30 @@ from tests.common import MockConfigEntry
@pytest.mark.usefixtures("valid_response")
async def test_unload_entry(hass: HomeAssistant) -> None:
@pytest.mark.parametrize(
"options",
[
DEFAULT_OPTIONS,
{
CONF_ROUTE_MODE: ROUTE_MODE_FASTEST,
CONF_DEPARTURE_TIME: datetime.now(),
},
{
CONF_ROUTE_MODE: ROUTE_MODE_FASTEST,
CONF_ARRIVAL_TIME: datetime.now(),
},
{
CONF_ROUTE_MODE: ROUTE_MODE_FASTEST,
},
],
)
async def test_unload_entry(hass: HomeAssistant, options) -> None:
"""Test that unloading an entry works."""
entry = MockConfigEntry(
domain=DOMAIN,
unique_id="0123456789",
data=DEFAULT_CONFIG,
options=DEFAULT_OPTIONS,
options=options,
)
entry.add_to_hass(hass)