Fix Trafikverket Ferry no time (#180822)

This commit is contained in:
G Johansson
2026-08-31 08:51:13 +00:00
committed by Franck Nijhof
parent 99f2f9dc74
commit 548792fb7d
3 changed files with 48 additions and 3 deletions
@@ -108,13 +108,13 @@ class TVFerryConfigFlow(ConfigFlow, domain=DOMAIN):
api_key: str = user_input[CONF_API_KEY]
ferry_from: str = user_input[CONF_FROM]
ferry_to: str = user_input.get(CONF_TO, "")
ferry_time: str = user_input[CONF_TIME]
ferry_time: str | None = user_input.get(CONF_TIME)
weekdays: list[str] = user_input[CONF_WEEKDAY]
name = f"{ferry_from}"
if ferry_to:
name = name + f" to {ferry_to}"
if ferry_time != "00:00:00":
if ferry_time and ferry_time != "00:00:00":
name = name + f" at {ferry_time!s}"
try:
@@ -64,7 +64,9 @@ class TVDataUpdateCoordinator(DataUpdateCoordinator):
)
self._from: str = config_entry.data[CONF_FROM]
self._to: str = config_entry.data[CONF_TO]
self._time: time | None = dt_util.parse_time(config_entry.data[CONF_TIME])
self._time: time | None = None
if config_entry.data[CONF_TIME]:
self._time = dt_util.parse_time(config_entry.data[CONF_TIME])
self._weekdays: list[str] = config_entry.data[CONF_WEEKDAY]
@override
@@ -63,6 +63,49 @@ async def test_form(hass: HomeAssistant) -> None:
assert result2["result"].unique_id == "eker\u00f6-slagsta-10:00-['mon', 'fri']"
async def test_no_time(hass: HomeAssistant) -> None:
"""Test flow without specify time."""
result = await hass.config_entries.flow.async_init(
DOMAIN, context={"source": config_entries.SOURCE_USER}
)
assert result["type"] is FlowResultType.FORM
assert result["errors"] == {}
with (
patch(
"homeassistant.components.trafikverket_ferry.config_flow.TrafikverketFerry.async_get_next_ferry_stop",
),
patch(
"homeassistant.components.trafikverket_ferry.async_setup_entry",
return_value=True,
) as mock_setup_entry,
):
result2 = await hass.config_entries.flow.async_configure(
result["flow_id"],
{
CONF_API_KEY: "1234567890",
CONF_FROM: "Ekerö",
CONF_TO: "Slagsta",
CONF_WEEKDAY: ["mon", "fri"],
},
)
await hass.async_block_till_done()
assert result2["type"] is FlowResultType.CREATE_ENTRY
assert result2["title"] == "Ekerö to Slagsta"
assert result2["data"] == {
"api_key": "1234567890",
"name": "Ekerö to Slagsta",
"from": "Ekerö",
"to": "Slagsta",
"time": None,
"weekday": ["mon", "fri"],
}
assert len(mock_setup_entry.mock_calls) == 1
assert result2["result"].unique_id == "eker\u00f6-slagsta-None-['mon', 'fri']"
@pytest.mark.parametrize(
("side_effect", "base_error"),
[