Remove deprecated yaml schema [fritzbox_callmonitor] (#70829)

This commit is contained in:
Marc Mueller 2022-04-27 00:32:18 +02:00 committed by GitHub
parent 1113503106
commit 348089efcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 97 deletions

View File

@ -141,12 +141,6 @@ class FritzBoxCallMonitorConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Get the options flow for this handler.""" """Get the options flow for this handler."""
return FritzBoxCallMonitorOptionsFlowHandler(config_entry) return FritzBoxCallMonitorOptionsFlowHandler(config_entry)
async def async_step_import(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle configuration by yaml file."""
return await self.async_step_user(user_input)
async def async_step_user( async def async_step_user(
self, user_input: dict[str, Any] | None = None self, user_input: dict[str, Any] | None = None
) -> FlowResult: ) -> FlowResult:

View File

@ -10,35 +10,20 @@ from time import sleep
from typing import Any, cast from typing import Any, cast
from fritzconnection.core.fritzmonitor import FritzMonitor from fritzconnection.core.fritzmonitor import FritzMonitor
import voluptuous as vol
from homeassistant.backports.enum import StrEnum from homeassistant.backports.enum import StrEnum
from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.components.sensor import SensorEntity
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ( from homeassistant.const import CONF_HOST, CONF_PORT, EVENT_HOMEASSISTANT_STOP
CONF_HOST,
CONF_NAME,
CONF_PASSWORD,
CONF_PORT,
CONF_USERNAME,
EVENT_HOMEASSISTANT_STOP,
)
from homeassistant.core import Event, HomeAssistant from homeassistant.core import Event, HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from .base import FritzBoxPhonebook from .base import FritzBoxPhonebook
from .const import ( from .const import (
ATTR_PREFIXES, ATTR_PREFIXES,
CONF_PHONEBOOK, CONF_PHONEBOOK,
CONF_PREFIXES, CONF_PREFIXES,
DEFAULT_HOST,
DEFAULT_NAME,
DEFAULT_PHONEBOOK,
DEFAULT_PORT,
DEFAULT_USERNAME,
DOMAIN, DOMAIN,
FRITZBOX_PHONEBOOK, FRITZBOX_PHONEBOOK,
ICON_PHONE, ICON_PHONE,
@ -61,40 +46,6 @@ class CallState(StrEnum):
IDLE = "idle" IDLE = "idle"
# Deprecated in Home Assistant 2022.3
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
vol.Optional(CONF_USERNAME, default=DEFAULT_USERNAME): cv.string,
vol.Optional(CONF_PASSWORD): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_PHONEBOOK, default=DEFAULT_PHONEBOOK): cv.positive_int,
vol.Optional(CONF_PREFIXES): vol.All(cv.ensure_list, [cv.string]),
}
)
async def async_setup_platform(
hass: HomeAssistant,
config: ConfigType,
async_add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Import the platform into a config entry."""
_LOGGER.warning(
"Configuration of the AVM FRITZ!Box Call Monitor sensor platform in YAML "
"is deprecated and will be removed in Home Assistant 2022.5; "
"Your existing configuration has been imported into the UI automatically "
"and can be safely removed from your configuration.yaml file"
)
hass.async_create_task(
hass.config_entries.flow.async_init(
DOMAIN, context={"source": SOURCE_IMPORT}, data=config
)
)
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: ConfigEntry,

View File

@ -13,7 +13,7 @@ from homeassistant.components.fritzbox_callmonitor.const import (
FRITZ_ATTR_SERIAL_NUMBER, FRITZ_ATTR_SERIAL_NUMBER,
SERIAL_NUMBER, SERIAL_NUMBER,
) )
from homeassistant.config_entries import SOURCE_IMPORT, SOURCE_USER from homeassistant.config_entries import SOURCE_USER
from homeassistant.const import ( from homeassistant.const import (
CONF_HOST, CONF_HOST,
CONF_NAME, CONF_NAME,
@ -68,44 +68,6 @@ MOCK_PHONEBOOK_INFO_2 = {FRITZ_ATTR_NAME: MOCK_PHONEBOOK_NAME_2}
MOCK_UNIQUE_ID = f"{MOCK_SERIAL_NUMBER}-{MOCK_PHONEBOOK_ID}" MOCK_UNIQUE_ID = f"{MOCK_SERIAL_NUMBER}-{MOCK_PHONEBOOK_ID}"
async def test_yaml_import(hass: HomeAssistant) -> None:
"""Test configuration.yaml import."""
with patch(
"homeassistant.components.fritzbox_callmonitor.base.FritzPhonebook.__init__",
return_value=None,
), patch(
"homeassistant.components.fritzbox_callmonitor.base.FritzPhonebook.phonebook_ids",
new_callable=PropertyMock,
return_value=[0],
), patch(
"homeassistant.components.fritzbox_callmonitor.base.FritzPhonebook.phonebook_info",
return_value=MOCK_PHONEBOOK_INFO_1,
), patch(
"homeassistant.components.fritzbox_callmonitor.base.FritzPhonebook.modelname",
return_value=MOCK_PHONEBOOK_NAME_1,
), patch(
"homeassistant.components.fritzbox_callmonitor.config_flow.FritzConnection.__init__",
return_value=None,
), patch(
"homeassistant.components.fritzbox_callmonitor.config_flow.FritzConnection.call_action",
return_value=MOCK_DEVICE_INFO,
), patch(
"homeassistant.components.fritzbox_callmonitor.async_setup_entry",
return_value=True,
) as mock_setup_entry:
result = await hass.config_entries.flow.async_init(
DOMAIN,
context={"source": SOURCE_IMPORT},
data=MOCK_YAML_CONFIG,
)
assert result["type"] == RESULT_TYPE_CREATE_ENTRY
assert result["title"] == MOCK_NAME
assert result["data"] == MOCK_CONFIG_ENTRY
assert len(mock_setup_entry.mock_calls) == 1
async def test_setup_one_phonebook(hass: HomeAssistant) -> None: async def test_setup_one_phonebook(hass: HomeAssistant) -> None:
"""Test setting up manually.""" """Test setting up manually."""
result = await hass.config_entries.flow.async_init( result = await hass.config_entries.flow.async_init(