mirror of
https://github.com/home-assistant/core.git
synced 2026-09-03 12:02:16 +01:00
Fix Trafikverket Ferry no time (#180822)
This commit is contained in:
@@ -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"),
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user