Raise on reauth in devolo Home Network switch platform (#92850)
parent
0fca90127b
commit
3abcffe3a0
|
@ -13,6 +13,7 @@ from homeassistant.components.switch import SwitchEntity, SwitchEntityDescriptio
|
|||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import EntityCategory
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||
|
||||
|
@ -113,8 +114,11 @@ class DevoloSwitchEntity(DevoloCoordinatorEntity[_DataT], SwitchEntity):
|
|||
"""Turn the entity on."""
|
||||
try:
|
||||
await self.entity_description.turn_on_func(self.device)
|
||||
except DevicePasswordProtected:
|
||||
except DevicePasswordProtected as ex:
|
||||
self.entry.async_start_reauth(self.hass)
|
||||
raise HomeAssistantError(
|
||||
f"Device {self.entry.title} require re-authenticatication to set or change the password"
|
||||
) from ex
|
||||
except DeviceUnavailable:
|
||||
pass # The coordinator will handle this
|
||||
await self.coordinator.async_request_refresh()
|
||||
|
@ -123,8 +127,11 @@ class DevoloSwitchEntity(DevoloCoordinatorEntity[_DataT], SwitchEntity):
|
|||
"""Turn the entity off."""
|
||||
try:
|
||||
await self.entity_description.turn_off_func(self.device)
|
||||
except DevicePasswordProtected:
|
||||
except DevicePasswordProtected as ex:
|
||||
self.entry.async_start_reauth(self.hass)
|
||||
raise HomeAssistantError(
|
||||
f"Device {self.entry.title} require re-authenticatication to set or change the password"
|
||||
) from ex
|
||||
except DeviceUnavailable:
|
||||
pass # The coordinator will handle this
|
||||
await self.coordinator.async_request_refresh()
|
||||
|
|
|
@ -21,6 +21,7 @@ from homeassistant.const import (
|
|||
EntityCategory,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
from homeassistant.helpers.update_coordinator import REQUEST_REFRESH_DEFAULT_COOLDOWN
|
||||
from homeassistant.util import dt
|
||||
|
@ -300,6 +301,7 @@ async def test_auth_failed(
|
|||
api = getattr(mock_device.device, set_method)
|
||||
api.side_effect = DevicePasswordProtected
|
||||
|
||||
with pytest.raises(HomeAssistantError):
|
||||
await hass.services.async_call(
|
||||
PLATFORM, SERVICE_TURN_ON, {"entity_id": state_key}, blocking=True
|
||||
)
|
||||
|
@ -313,6 +315,7 @@ async def test_auth_failed(
|
|||
assert flow["context"]["source"] == SOURCE_REAUTH
|
||||
assert flow["context"]["entry_id"] == entry.entry_id
|
||||
|
||||
with pytest.raises(HomeAssistantError):
|
||||
await hass.services.async_call(
|
||||
PLATFORM, SERVICE_TURN_OFF, {"entity_id": state_key}, blocking=True
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue