Bumping to PyTado 0.16 and adding test coverage

This commit is contained in:
Erwin Douna
2023-08-04 18:05:23 +00:00
parent 9d9af0c884
commit 8380edee2d
4 changed files with 78 additions and 3 deletions

View File

@@ -14,5 +14,5 @@
},
"iot_class": "cloud_polling",
"loggers": ["PyTado"],
"requirements": ["python-tado==0.15.0"]
"requirements": ["python-tado==0.16.0"]
}

View File

@@ -2162,7 +2162,7 @@ python-smarttub==0.0.33
python-songpal==0.15.2
# homeassistant.components.tado
python-tado==0.15.0
python-tado==0.16.0
# homeassistant.components.telegram_bot
python-telegram-bot==13.1

View File

@@ -1591,7 +1591,7 @@ python-smarttub==0.0.33
python-songpal==0.15.2
# homeassistant.components.tado
python-tado==0.15.0
python-tado==0.16.0
# homeassistant.components.telegram_bot
python-telegram-bot==13.1

View File

@@ -78,6 +78,81 @@ async def test_form_invalid_auth(hass: HomeAssistant) -> None:
assert result2["errors"] == {"base": "invalid_auth"}
async def test_form_key_error(hass: HomeAssistant) -> None:
"""Test we handle KeyError."""
result = await hass.config_entries.flow.async_init(
DOMAIN, context={"source": config_entries.SOURCE_USER}
)
with patch(
"homeassistant.components.tado.config_flow.Tado",
side_effect=KeyError,
):
result2 = await hass.config_entries.flow.async_configure(
result["flow_id"],
{"username": "test-username", "password": "test-password"},
)
assert result2["type"] == "form"
assert result2["errors"] == {"base": "invalid_auth"}
async def test_form_runtime_error(hass: HomeAssistant) -> None:
"""Test we handle RuntimeError."""
result = await hass.config_entries.flow.async_init(
DOMAIN, context={"source": config_entries.SOURCE_USER}
)
with patch(
"homeassistant.components.tado.config_flow.Tado",
side_effect=RuntimeError,
):
result2 = await hass.config_entries.flow.async_configure(
result["flow_id"],
{"username": "test-username", "password": "test-password"},
)
assert result2["type"] == "form"
assert result2["errors"] == {"base": "cannot_connect"}
async def test_form_exception(hass: HomeAssistant) -> None:
"""Test we handle Exception."""
result = await hass.config_entries.flow.async_init(
DOMAIN, context={"source": config_entries.SOURCE_USER}
)
with patch(
"homeassistant.components.tado.config_flow.Tado",
side_effect=Exception,
):
result2 = await hass.config_entries.flow.async_configure(
result["flow_id"],
{"username": "test-username", "password": "test-password"},
)
assert result2["type"] == "form"
assert result2["errors"] == {"base": "unknown"}
# Write a test for OptionsFlowHandler
async def test_options_flow(hass: HomeAssistant) -> None:
"""Test config flow options."""
entry = MockConfigEntry(domain=DOMAIN, data={"username": "test-username"})
entry.add_to_hass(hass)
with patch(
"homeassistant.components.tado.async_setup_entry",
return_value=True,
):
await hass.config_entries.async_setup(entry.entry_id)
await hass.async_block_till_done()
result = await hass.config_entries.options.async_init(entry.entry_id)
assert result["type"] == "form"
assert result["step_id"] == "init"
async def test_form_cannot_connect(hass: HomeAssistant) -> None:
"""Test we handle cannot connect error."""
result = await hass.config_entries.flow.async_init(