deCONZ - Dont update entry if data is equal
parent
309d401e47
commit
d1e3fbd622
|
@ -157,8 +157,12 @@ class DeconzFlowHandler(config_entries.ConfigFlow):
|
||||||
|
|
||||||
async def _update_entry(self, entry, host):
|
async def _update_entry(self, entry, host):
|
||||||
"""Update existing entry."""
|
"""Update existing entry."""
|
||||||
|
if entry.data[CONF_HOST] == host:
|
||||||
|
return self.async_abort(reason="already_configured")
|
||||||
|
|
||||||
entry.data[CONF_HOST] = host
|
entry.data[CONF_HOST] = host
|
||||||
self.hass.config_entries.async_update_entry(entry)
|
self.hass.config_entries.async_update_entry(entry)
|
||||||
|
return self.async_abort(reason="updated_instance")
|
||||||
|
|
||||||
async def async_step_ssdp(self, discovery_info):
|
async def async_step_ssdp(self, discovery_info):
|
||||||
"""Handle a discovered deCONZ bridge."""
|
"""Handle a discovered deCONZ bridge."""
|
||||||
|
@ -175,8 +179,7 @@ class DeconzFlowHandler(config_entries.ConfigFlow):
|
||||||
|
|
||||||
if uuid in gateways:
|
if uuid in gateways:
|
||||||
entry = gateways[uuid].config_entry
|
entry = gateways[uuid].config_entry
|
||||||
await self._update_entry(entry, discovery_info[CONF_HOST])
|
return await self._update_entry(entry, discovery_info[CONF_HOST])
|
||||||
return self.async_abort(reason="updated_instance")
|
|
||||||
|
|
||||||
bridgeid = discovery_info[ATTR_SERIAL]
|
bridgeid = discovery_info[ATTR_SERIAL]
|
||||||
if any(
|
if any(
|
||||||
|
@ -224,8 +227,7 @@ class DeconzFlowHandler(config_entries.ConfigFlow):
|
||||||
|
|
||||||
if bridgeid in gateway_entries:
|
if bridgeid in gateway_entries:
|
||||||
entry = gateway_entries[bridgeid]
|
entry = gateway_entries[bridgeid]
|
||||||
await self._update_entry(entry, user_input[CONF_HOST])
|
return await self._update_entry(entry, user_input[CONF_HOST])
|
||||||
return self.async_abort(reason="updated_instance")
|
|
||||||
|
|
||||||
self._hassio_discovery = user_input
|
self._hassio_discovery = user_input
|
||||||
|
|
||||||
|
|
|
@ -336,6 +336,24 @@ async def test_hassio_update_instance(hass):
|
||||||
assert entry.data[config_flow.CONF_HOST] == "mock-deconz"
|
assert entry.data[config_flow.CONF_HOST] == "mock-deconz"
|
||||||
|
|
||||||
|
|
||||||
|
async def test_hassio_dont_update_instance(hass):
|
||||||
|
"""Test we can update an existing config entry."""
|
||||||
|
entry = MockConfigEntry(
|
||||||
|
domain=config_flow.DOMAIN,
|
||||||
|
data={config_flow.CONF_BRIDGEID: "id", config_flow.CONF_HOST: "1.2.3.4"},
|
||||||
|
)
|
||||||
|
entry.add_to_hass(hass)
|
||||||
|
|
||||||
|
result = await hass.config_entries.flow.async_init(
|
||||||
|
config_flow.DOMAIN,
|
||||||
|
data={config_flow.CONF_HOST: "1.2.3.4", config_flow.CONF_SERIAL: "id"},
|
||||||
|
context={"source": "hassio"},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result["type"] == "abort"
|
||||||
|
assert result["reason"] == "already_configured"
|
||||||
|
|
||||||
|
|
||||||
async def test_hassio_confirm(hass):
|
async def test_hassio_confirm(hass):
|
||||||
"""Test we can finish a config flow."""
|
"""Test we can finish a config flow."""
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
|
|
Loading…
Reference in New Issue