mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 02:07:09 +00:00
Bump aioshelly library to version 0.3.3 (#40415)
This commit is contained in:
parent
8837ed35cd
commit
b8f837365c
@ -62,6 +62,8 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
info = await self._async_get_info(host)
|
info = await self._async_get_info(host)
|
||||||
except HTTP_CONNECT_ERRORS:
|
except HTTP_CONNECT_ERRORS:
|
||||||
errors["base"] = "cannot_connect"
|
errors["base"] = "cannot_connect"
|
||||||
|
except aioshelly.FirmwareUnsupported:
|
||||||
|
return self.async_abort(reason="unsupported_firmware")
|
||||||
except Exception: # pylint: disable=broad-except
|
except Exception: # pylint: disable=broad-except
|
||||||
_LOGGER.exception("Unexpected exception")
|
_LOGGER.exception("Unexpected exception")
|
||||||
errors["base"] = "unknown"
|
errors["base"] = "unknown"
|
||||||
@ -133,6 +135,8 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
self.info = info = await self._async_get_info(zeroconf_info["host"])
|
self.info = info = await self._async_get_info(zeroconf_info["host"])
|
||||||
except HTTP_CONNECT_ERRORS:
|
except HTTP_CONNECT_ERRORS:
|
||||||
return self.async_abort(reason="cannot_connect")
|
return self.async_abort(reason="cannot_connect")
|
||||||
|
except aioshelly.FirmwareUnsupported:
|
||||||
|
return self.async_abort(reason="unsupported_firmware")
|
||||||
|
|
||||||
await self.async_set_unique_id(info["mac"])
|
await self.async_set_unique_id(info["mac"])
|
||||||
self._abort_if_unique_id_configured({CONF_HOST: zeroconf_info["host"]})
|
self._abort_if_unique_id_configured({CONF_HOST: zeroconf_info["host"]})
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
"name": "Shelly",
|
"name": "Shelly",
|
||||||
"config_flow": true,
|
"config_flow": true,
|
||||||
"documentation": "https://www.home-assistant.io/integrations/shelly",
|
"documentation": "https://www.home-assistant.io/integrations/shelly",
|
||||||
"requirements": ["aioshelly==0.3.2"],
|
"requirements": ["aioshelly==0.3.3"],
|
||||||
"zeroconf": [{"type": "_http._tcp.local.", "name":"shelly*"}],
|
"zeroconf": [{"type": "_http._tcp.local.", "name":"shelly*"}],
|
||||||
"codeowners": ["@balloob", "@bieniu"]
|
"codeowners": ["@balloob", "@bieniu"]
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,8 @@
|
|||||||
"unknown": "[%key:common::config_flow::error::unknown%]"
|
"unknown": "[%key:common::config_flow::error::unknown%]"
|
||||||
},
|
},
|
||||||
"abort": {
|
"abort": {
|
||||||
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
|
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
|
||||||
|
"unsupported_firmware": "The device is using an unsupported firmware version."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -221,7 +221,7 @@ aiopvpc==2.0.2
|
|||||||
aiopylgtv==0.3.3
|
aiopylgtv==0.3.3
|
||||||
|
|
||||||
# homeassistant.components.shelly
|
# homeassistant.components.shelly
|
||||||
aioshelly==0.3.2
|
aioshelly==0.3.3
|
||||||
|
|
||||||
# homeassistant.components.switcher_kis
|
# homeassistant.components.switcher_kis
|
||||||
aioswitcher==1.2.1
|
aioswitcher==1.2.1
|
||||||
|
@ -134,7 +134,7 @@ aiopvpc==2.0.2
|
|||||||
aiopylgtv==0.3.3
|
aiopylgtv==0.3.3
|
||||||
|
|
||||||
# homeassistant.components.shelly
|
# homeassistant.components.shelly
|
||||||
aioshelly==0.3.2
|
aioshelly==0.3.3
|
||||||
|
|
||||||
# homeassistant.components.switcher_kis
|
# homeassistant.components.switcher_kis
|
||||||
aioswitcher==1.2.1
|
aioswitcher==1.2.1
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
|
import aioshelly
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from homeassistant import config_entries, setup
|
from homeassistant import config_entries, setup
|
||||||
@ -113,10 +114,7 @@ async def test_form_errors_get_info(hass, error):
|
|||||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||||
)
|
)
|
||||||
|
|
||||||
with patch(
|
with patch("aioshelly.get_info", side_effect=exc):
|
||||||
"aioshelly.get_info",
|
|
||||||
side_effect=exc,
|
|
||||||
):
|
|
||||||
result2 = await hass.config_entries.flow.async_configure(
|
result2 = await hass.config_entries.flow.async_configure(
|
||||||
result["flow_id"],
|
result["flow_id"],
|
||||||
{"host": "1.1.1.1"},
|
{"host": "1.1.1.1"},
|
||||||
@ -138,10 +136,7 @@ async def test_form_errors_test_connection(hass, error):
|
|||||||
|
|
||||||
with patch(
|
with patch(
|
||||||
"aioshelly.get_info", return_value={"mac": "test-mac", "auth": False}
|
"aioshelly.get_info", return_value={"mac": "test-mac", "auth": False}
|
||||||
), patch(
|
), patch("aioshelly.Device.create", new=AsyncMock(side_effect=exc)):
|
||||||
"aioshelly.Device.create",
|
|
||||||
new=AsyncMock(side_effect=exc),
|
|
||||||
):
|
|
||||||
result2 = await hass.config_entries.flow.async_configure(
|
result2 = await hass.config_entries.flow.async_configure(
|
||||||
result["flow_id"],
|
result["flow_id"],
|
||||||
{"host": "1.1.1.1"},
|
{"host": "1.1.1.1"},
|
||||||
@ -179,6 +174,22 @@ async def test_form_already_configured(hass):
|
|||||||
assert entry.data["host"] == "1.1.1.1"
|
assert entry.data["host"] == "1.1.1.1"
|
||||||
|
|
||||||
|
|
||||||
|
async def test_form_firmware_unsupported(hass):
|
||||||
|
"""Test we abort if device firmware is unsupported."""
|
||||||
|
result = await hass.config_entries.flow.async_init(
|
||||||
|
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||||
|
)
|
||||||
|
|
||||||
|
with patch("aioshelly.get_info", side_effect=aioshelly.FirmwareUnsupported):
|
||||||
|
result2 = await hass.config_entries.flow.async_configure(
|
||||||
|
result["flow_id"],
|
||||||
|
{"host": "1.1.1.1"},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result2["type"] == "abort"
|
||||||
|
assert result2["reason"] == "unsupported_firmware"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"error",
|
"error",
|
||||||
[
|
[
|
||||||
@ -315,12 +326,22 @@ async def test_zeroconf_already_configured(hass):
|
|||||||
assert entry.data["host"] == "1.1.1.1"
|
assert entry.data["host"] == "1.1.1.1"
|
||||||
|
|
||||||
|
|
||||||
|
async def test_zeroconf_firmware_unsupported(hass):
|
||||||
|
"""Test we abort if device firmware is unsupported."""
|
||||||
|
with patch("aioshelly.get_info", side_effect=aioshelly.FirmwareUnsupported):
|
||||||
|
result = await hass.config_entries.flow.async_init(
|
||||||
|
DOMAIN,
|
||||||
|
data={"host": "1.1.1.1", "name": "shelly1pm-12345"},
|
||||||
|
context={"source": config_entries.SOURCE_ZEROCONF},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result["type"] == "abort"
|
||||||
|
assert result["reason"] == "unsupported_firmware"
|
||||||
|
|
||||||
|
|
||||||
async def test_zeroconf_cannot_connect(hass):
|
async def test_zeroconf_cannot_connect(hass):
|
||||||
"""Test we get the form."""
|
"""Test we get the form."""
|
||||||
with patch(
|
with patch("aioshelly.get_info", side_effect=asyncio.TimeoutError):
|
||||||
"aioshelly.get_info",
|
|
||||||
side_effect=asyncio.TimeoutError,
|
|
||||||
):
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
data={"host": "1.1.1.1", "name": "shelly1pm-12345"},
|
data={"host": "1.1.1.1", "name": "shelly1pm-12345"},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user