mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 20:57:21 +00:00
Remove deprecated async_get_scanner from fritz (#63857)
Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
parent
d8a3a26444
commit
431d15bf8b
@ -272,17 +272,6 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
await self.hass.config_entries.async_reload(self._entry.entry_id)
|
await self.hass.config_entries.async_reload(self._entry.entry_id)
|
||||||
return self.async_abort(reason="reauth_successful")
|
return self.async_abort(reason="reauth_successful")
|
||||||
|
|
||||||
async def async_step_import(self, import_config: dict[str, Any]) -> FlowResult:
|
|
||||||
"""Import a config entry from configuration.yaml."""
|
|
||||||
return await self.async_step_user(
|
|
||||||
{
|
|
||||||
CONF_HOST: import_config[CONF_HOST],
|
|
||||||
CONF_USERNAME: import_config[CONF_USERNAME],
|
|
||||||
CONF_PASSWORD: import_config.get(CONF_PASSWORD),
|
|
||||||
CONF_PORT: import_config.get(CONF_PORT, DEFAULT_PORT),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class FritzBoxToolsOptionsFlowHandler(OptionsFlow):
|
class FritzBoxToolsOptionsFlowHandler(OptionsFlow):
|
||||||
"""Handle a option flow."""
|
"""Handle a option flow."""
|
||||||
|
@ -4,21 +4,12 @@ from __future__ import annotations
|
|||||||
import datetime
|
import datetime
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import voluptuous as vol
|
from homeassistant.components.device_tracker import SOURCE_TYPE_ROUTER
|
||||||
|
|
||||||
from homeassistant.components.device_tracker import (
|
|
||||||
DOMAIN as DEVICE_TRACKER_DOMAIN,
|
|
||||||
PLATFORM_SCHEMA as PARENT_PLATFORM_SCHEMA,
|
|
||||||
SOURCE_TYPE_ROUTER,
|
|
||||||
)
|
|
||||||
from homeassistant.components.device_tracker.config_entry import ScannerEntity
|
from homeassistant.components.device_tracker.config_entry import ScannerEntity
|
||||||
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_USERNAME
|
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
import homeassistant.helpers.config_validation as cv
|
|
||||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.typing import ConfigType
|
|
||||||
|
|
||||||
from .common import (
|
from .common import (
|
||||||
FritzBoxTools,
|
FritzBoxTools,
|
||||||
@ -34,40 +25,6 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
YAML_DEFAULT_HOST = "169.254.1.1"
|
YAML_DEFAULT_HOST = "169.254.1.1"
|
||||||
YAML_DEFAULT_USERNAME = "admin"
|
YAML_DEFAULT_USERNAME = "admin"
|
||||||
|
|
||||||
PLATFORM_SCHEMA = vol.All(
|
|
||||||
cv.deprecated(CONF_HOST),
|
|
||||||
cv.deprecated(CONF_USERNAME),
|
|
||||||
cv.deprecated(CONF_PASSWORD),
|
|
||||||
PARENT_PLATFORM_SCHEMA.extend(
|
|
||||||
{
|
|
||||||
vol.Optional(CONF_HOST, default=YAML_DEFAULT_HOST): cv.string,
|
|
||||||
vol.Optional(CONF_USERNAME, default=YAML_DEFAULT_USERNAME): cv.string,
|
|
||||||
vol.Optional(CONF_PASSWORD): cv.string,
|
|
||||||
}
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
async def async_get_scanner(hass: HomeAssistant, config: ConfigType) -> None:
|
|
||||||
"""Import legacy FRITZ!Box configuration."""
|
|
||||||
_LOGGER.debug("Import legacy FRITZ!Box configuration from YAML")
|
|
||||||
|
|
||||||
hass.async_create_task(
|
|
||||||
hass.config_entries.flow.async_init(
|
|
||||||
DOMAIN,
|
|
||||||
context={"source": SOURCE_IMPORT},
|
|
||||||
data=config[DEVICE_TRACKER_DOMAIN],
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
_LOGGER.warning(
|
|
||||||
"Your Fritz configuration has been imported into the UI, "
|
|
||||||
"please remove it from configuration.yaml. "
|
|
||||||
"Loading Fritz via scanner setup is now deprecated"
|
|
||||||
)
|
|
||||||
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
||||||
|
@ -17,12 +17,7 @@ from homeassistant.components.fritz.const import (
|
|||||||
ERROR_UNKNOWN,
|
ERROR_UNKNOWN,
|
||||||
)
|
)
|
||||||
from homeassistant.components.ssdp import ATTR_UPNP_FRIENDLY_NAME, ATTR_UPNP_UDN
|
from homeassistant.components.ssdp import ATTR_UPNP_FRIENDLY_NAME, ATTR_UPNP_UDN
|
||||||
from homeassistant.config_entries import (
|
from homeassistant.config_entries import SOURCE_REAUTH, SOURCE_SSDP, SOURCE_USER
|
||||||
SOURCE_IMPORT,
|
|
||||||
SOURCE_REAUTH,
|
|
||||||
SOURCE_SSDP,
|
|
||||||
SOURCE_USER,
|
|
||||||
)
|
|
||||||
from homeassistant.const import CONF_DEVICES, CONF_HOST, CONF_PASSWORD, CONF_USERNAME
|
from homeassistant.const import CONF_DEVICES, CONF_HOST, CONF_PASSWORD, CONF_USERNAME
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.data_entry_flow import (
|
from homeassistant.data_entry_flow import (
|
||||||
@ -48,7 +43,6 @@ MOCK_DEVICE_INFO = {
|
|||||||
ATTR_HOST: MOCK_HOST,
|
ATTR_HOST: MOCK_HOST,
|
||||||
ATTR_NEW_SERIAL_NUMBER: MOCK_SERIAL_NUMBER,
|
ATTR_NEW_SERIAL_NUMBER: MOCK_SERIAL_NUMBER,
|
||||||
}
|
}
|
||||||
MOCK_IMPORT_CONFIG = {CONF_HOST: MOCK_HOST, CONF_USERNAME: "username"}
|
|
||||||
MOCK_SSDP_DATA = ssdp.SsdpServiceInfo(
|
MOCK_SSDP_DATA = ssdp.SsdpServiceInfo(
|
||||||
ssdp_usn="mock_usn",
|
ssdp_usn="mock_usn",
|
||||||
ssdp_st="mock_st",
|
ssdp_st="mock_st",
|
||||||
@ -487,43 +481,6 @@ async def test_ssdp_exception(hass: HomeAssistant, mock_get_source_ip):
|
|||||||
assert result["step_id"] == "confirm"
|
assert result["step_id"] == "confirm"
|
||||||
|
|
||||||
|
|
||||||
async def test_import(hass: HomeAssistant, fc_class_mock, mock_get_source_ip):
|
|
||||||
"""Test importing."""
|
|
||||||
with patch(
|
|
||||||
"homeassistant.components.fritz.common.FritzConnection",
|
|
||||||
side_effect=fc_class_mock,
|
|
||||||
), patch("homeassistant.components.fritz.common.FritzStatus"), patch(
|
|
||||||
"homeassistant.components.fritz.common.FritzBoxTools._update_device_info",
|
|
||||||
return_value=MOCK_FIRMWARE_INFO,
|
|
||||||
), patch(
|
|
||||||
"homeassistant.components.fritz.async_setup_entry"
|
|
||||||
) as mock_setup_entry, patch(
|
|
||||||
"requests.get"
|
|
||||||
) as mock_request_get, patch(
|
|
||||||
"requests.post"
|
|
||||||
) as mock_request_post, patch(
|
|
||||||
"homeassistant.components.fritz.config_flow.socket.gethostbyname",
|
|
||||||
return_value=MOCK_IP,
|
|
||||||
):
|
|
||||||
|
|
||||||
mock_request_get.return_value.status_code = 200
|
|
||||||
mock_request_get.return_value.content = MOCK_REQUEST
|
|
||||||
mock_request_post.return_value.status_code = 200
|
|
||||||
mock_request_post.return_value.text = MOCK_REQUEST
|
|
||||||
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
|
||||||
DOMAIN, context={"source": SOURCE_IMPORT}, data=MOCK_IMPORT_CONFIG
|
|
||||||
)
|
|
||||||
|
|
||||||
assert result["type"] == RESULT_TYPE_CREATE_ENTRY
|
|
||||||
assert result["data"][CONF_HOST] == "fake_host"
|
|
||||||
assert result["data"][CONF_PASSWORD] is None
|
|
||||||
assert result["data"][CONF_USERNAME] == "username"
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
|
|
||||||
assert mock_setup_entry.called
|
|
||||||
|
|
||||||
|
|
||||||
async def test_options_flow(hass: HomeAssistant, fc_class_mock, mock_get_source_ip):
|
async def test_options_flow(hass: HomeAssistant, fc_class_mock, mock_get_source_ip):
|
||||||
"""Test options flow."""
|
"""Test options flow."""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user