Fix Daikin config flow for zeroconf devices (#36571)
This commit is contained in:
parent
212b9df87d
commit
fa17e6d5ab
2 changed files with 13 additions and 7 deletions
|
@ -40,8 +40,8 @@ class FlowHandler(config_entries.ConfigFlow):
|
|||
|
||||
async def _create_entry(self, host, mac, key=None, uuid=None, password=None):
|
||||
"""Register new entry."""
|
||||
# Check if mac already is registered
|
||||
await self.async_set_unique_id(mac)
|
||||
if not self.unique_id:
|
||||
await self.async_set_unique_id(mac)
|
||||
self._abort_if_unique_id_configured()
|
||||
|
||||
return self.async_create_entry(
|
||||
|
|
|
@ -25,6 +25,7 @@ from tests.common import MockConfigEntry
|
|||
|
||||
MAC = "AABBCCDDEEFF"
|
||||
HOST = "127.0.0.1"
|
||||
HOSTNAME = "DaikinUNIQUE.local"
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -112,11 +113,7 @@ async def test_device_abort(hass, mock_daikin, s_effect, reason):
|
|||
"source, data, unique_id",
|
||||
[
|
||||
(SOURCE_DISCOVERY, {KEY_IP: HOST, KEY_MAC: MAC}, MAC),
|
||||
(
|
||||
SOURCE_ZEROCONF,
|
||||
{CONF_HOST: HOST, KEY_HOSTNAME: "DaikinUNIQE.local"},
|
||||
"DaikinUNIQE.local",
|
||||
),
|
||||
(SOURCE_ZEROCONF, {CONF_HOST: HOST, KEY_HOSTNAME: HOSTNAME}, HOSTNAME),
|
||||
],
|
||||
)
|
||||
async def test_discovery_zeroconf(hass, mock_daikin, source, data, unique_id):
|
||||
|
@ -128,6 +125,15 @@ async def test_discovery_zeroconf(hass, mock_daikin, source, data, unique_id):
|
|||
assert result["step_id"] == "user"
|
||||
|
||||
MockConfigEntry(domain="daikin", unique_id=unique_id).add_to_hass(hass)
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
"daikin",
|
||||
context={"source": SOURCE_USER, "unique_id": unique_id},
|
||||
data={CONF_HOST: HOST},
|
||||
)
|
||||
|
||||
assert result["type"] == RESULT_TYPE_ABORT
|
||||
assert result["reason"] == "already_configured"
|
||||
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
"daikin", context={"source": source}, data=data,
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue