mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Load the SSDP component only when it's needed (#24420)
* fix(hue): Load the SSDP component only when it's needed * fix(deconz): Don't load the SSDP component when it's not needed * Update config_flow.py * Update test_config_flow.py
This commit is contained in:
parent
84e6813779
commit
fadfb89b4c
@ -9,7 +9,6 @@ from pydeconz.utils import (
|
|||||||
async_discovery, async_get_api_key, async_get_bridgeid)
|
async_discovery, async_get_api_key, async_get_bridgeid)
|
||||||
|
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from homeassistant.components.ssdp import ATTR_MANUFACTURERURL, ATTR_SERIAL
|
|
||||||
from homeassistant.const import CONF_API_KEY, CONF_HOST, CONF_PORT
|
from homeassistant.const import CONF_API_KEY, CONF_HOST, CONF_PORT
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from homeassistant.helpers import aiohttp_client
|
from homeassistant.helpers import aiohttp_client
|
||||||
@ -154,6 +153,9 @@ class DeconzFlowHandler(config_entries.ConfigFlow):
|
|||||||
|
|
||||||
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."""
|
||||||
|
from homeassistant.components.ssdp import (
|
||||||
|
ATTR_MANUFACTURERURL, ATTR_SERIAL)
|
||||||
|
|
||||||
if discovery_info[ATTR_MANUFACTURERURL] != DECONZ_MANUFACTURERURL:
|
if discovery_info[ATTR_MANUFACTURERURL] != DECONZ_MANUFACTURERURL:
|
||||||
return self.async_abort(reason='not_deconz_bridge')
|
return self.async_abort(reason='not_deconz_bridge')
|
||||||
|
|
||||||
|
@ -8,7 +8,6 @@ import async_timeout
|
|||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from homeassistant.components.ssdp import ATTR_MANUFACTURERURL
|
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from homeassistant.helpers import aiohttp_client
|
from homeassistant.helpers import aiohttp_client
|
||||||
|
|
||||||
@ -146,6 +145,8 @@ class HueFlowHandler(config_entries.ConfigFlow):
|
|||||||
This flow is triggered by the SSDP component. It will check if the
|
This flow is triggered by the SSDP component. It will check if the
|
||||||
host is already configured and delegate to the import step if not.
|
host is already configured and delegate to the import step if not.
|
||||||
"""
|
"""
|
||||||
|
from homeassistant.components.ssdp import ATTR_MANUFACTURERURL
|
||||||
|
|
||||||
if discovery_info[ATTR_MANUFACTURERURL] != HUE_MANUFACTURERURL:
|
if discovery_info[ATTR_MANUFACTURERURL] != HUE_MANUFACTURERURL:
|
||||||
return self.async_abort(reason='not_hue_bridge')
|
return self.async_abort(reason='not_hue_bridge')
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ from unittest.mock import Mock, patch
|
|||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
from homeassistant.components.deconz import config_flow
|
from homeassistant.components.deconz import config_flow
|
||||||
|
from homeassistant.components.ssdp import ATTR_MANUFACTURERURL, ATTR_SERIAL
|
||||||
from tests.common import MockConfigEntry
|
from tests.common import MockConfigEntry
|
||||||
|
|
||||||
import pydeconz
|
import pydeconz
|
||||||
@ -175,8 +176,8 @@ async def test_bridge_ssdp_discovery(hass):
|
|||||||
data={
|
data={
|
||||||
config_flow.CONF_HOST: '1.2.3.4',
|
config_flow.CONF_HOST: '1.2.3.4',
|
||||||
config_flow.CONF_PORT: 80,
|
config_flow.CONF_PORT: 80,
|
||||||
config_flow.ATTR_SERIAL: 'id',
|
ATTR_SERIAL: 'id',
|
||||||
config_flow.ATTR_MANUFACTURERURL:
|
ATTR_MANUFACTURERURL:
|
||||||
config_flow.DECONZ_MANUFACTURERURL,
|
config_flow.DECONZ_MANUFACTURERURL,
|
||||||
config_flow.ATTR_UUID: 'uuid:1234'
|
config_flow.ATTR_UUID: 'uuid:1234'
|
||||||
},
|
},
|
||||||
@ -192,7 +193,7 @@ async def test_bridge_ssdp_discovery_not_deconz_bridge(hass):
|
|||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
config_flow.DOMAIN,
|
config_flow.DOMAIN,
|
||||||
data={
|
data={
|
||||||
config_flow.ATTR_MANUFACTURERURL: 'not deconz bridge'
|
ATTR_MANUFACTURERURL: 'not deconz bridge'
|
||||||
},
|
},
|
||||||
context={'source': 'ssdp'}
|
context={'source': 'ssdp'}
|
||||||
)
|
)
|
||||||
@ -217,8 +218,8 @@ async def test_bridge_discovery_update_existing_entry(hass):
|
|||||||
config_flow.DOMAIN,
|
config_flow.DOMAIN,
|
||||||
data={
|
data={
|
||||||
config_flow.CONF_HOST: 'mock-deconz',
|
config_flow.CONF_HOST: 'mock-deconz',
|
||||||
config_flow.ATTR_SERIAL: 'id',
|
ATTR_SERIAL: 'id',
|
||||||
config_flow.ATTR_MANUFACTURERURL:
|
ATTR_MANUFACTURERURL:
|
||||||
config_flow.DECONZ_MANUFACTURERURL,
|
config_flow.DECONZ_MANUFACTURERURL,
|
||||||
config_flow.ATTR_UUID: 'uuid:1234'
|
config_flow.ATTR_UUID: 'uuid:1234'
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user