From 548792fb7d39ccfa4fcdb83b2e52a9db2745891e Mon Sep 17 00:00:00 2001 From: G Johansson Date: Sun, 30 Aug 2026 17:05:35 +0200 Subject: [PATCH] Fix Trafikverket Ferry no time (#180822) --- .../trafikverket_ferry/config_flow.py | 4 +- .../trafikverket_ferry/coordinator.py | 4 +- .../trafikverket_ferry/test_config_flow.py | 43 +++++++++++++++++++ 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/trafikverket_ferry/config_flow.py b/homeassistant/components/trafikverket_ferry/config_flow.py index d161374e0d21..a8cf72c2a76a 100644 --- a/homeassistant/components/trafikverket_ferry/config_flow.py +++ b/homeassistant/components/trafikverket_ferry/config_flow.py @@ -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: diff --git a/homeassistant/components/trafikverket_ferry/coordinator.py b/homeassistant/components/trafikverket_ferry/coordinator.py index dab9f7b5ced6..52f43ec5306f 100644 --- a/homeassistant/components/trafikverket_ferry/coordinator.py +++ b/homeassistant/components/trafikverket_ferry/coordinator.py @@ -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 diff --git a/tests/components/trafikverket_ferry/test_config_flow.py b/tests/components/trafikverket_ferry/test_config_flow.py index bd16dfb4e7a3..e2ea3ca6c5f5 100644 --- a/tests/components/trafikverket_ferry/test_config_flow.py +++ b/tests/components/trafikverket_ferry/test_config_flow.py @@ -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"), [