Remove low level call from fritzbox_callmonitor (#78668)

This commit is contained in:
Marc Mueller 2022-09-18 03:08:55 +02:00 committed by GitHub
parent dbc02707a9
commit f7ef9eb91b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 12 deletions

View file

@ -5,6 +5,7 @@ from typing import Any, cast
from fritzconnection import FritzConnection from fritzconnection import FritzConnection
from fritzconnection.core.exceptions import FritzConnectionException, FritzSecurityError from fritzconnection.core.exceptions import FritzConnectionException, FritzSecurityError
from fritzconnection.lib.fritzstatus import FritzStatus
from requests.exceptions import ConnectionError as RequestsConnectionError from requests.exceptions import ConnectionError as RequestsConnectionError
import voluptuous as vol import voluptuous as vol
@ -29,10 +30,7 @@ from .const import (
DEFAULT_PORT, DEFAULT_PORT,
DEFAULT_USERNAME, DEFAULT_USERNAME,
DOMAIN, DOMAIN,
FRITZ_ACTION_GET_INFO,
FRITZ_ATTR_NAME, FRITZ_ATTR_NAME,
FRITZ_ATTR_SERIAL_NUMBER,
FRITZ_SERVICE_DEVICE_INFO,
SERIAL_NUMBER, SERIAL_NUMBER,
) )
@ -104,10 +102,9 @@ class FritzBoxCallMonitorConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
fritz_connection = FritzConnection( fritz_connection = FritzConnection(
address=self._host, user=self._username, password=self._password address=self._host, user=self._username, password=self._password
) )
device_info = fritz_connection.call_action( fritz_status = FritzStatus(fc=fritz_connection)
FRITZ_SERVICE_DEVICE_INFO, FRITZ_ACTION_GET_INFO device_info = fritz_status.get_device_info()
) self._serial_number = device_info.serial_number
self._serial_number = device_info[FRITZ_ATTR_SERIAL_NUMBER]
return ConnectResult.SUCCESS return ConnectResult.SUCCESS
except RequestsConnectionError: except RequestsConnectionError:

View file

@ -18,10 +18,8 @@ ICON_PHONE: Final = "mdi:phone"
ATTR_PREFIXES = "prefixes" ATTR_PREFIXES = "prefixes"
FRITZ_ACTION_GET_INFO = "GetInfo"
FRITZ_ATTR_NAME = "name" FRITZ_ATTR_NAME = "name"
FRITZ_ATTR_SERIAL_NUMBER = "NewSerialNumber" FRITZ_ATTR_SERIAL_NUMBER = "NewSerialNumber"
FRITZ_SERVICE_DEVICE_INFO = "DeviceInfo"
UNKNOWN_NAME = "unknown" UNKNOWN_NAME = "unknown"
SERIAL_NUMBER = "serial_number" SERIAL_NUMBER = "serial_number"

View file

@ -2,6 +2,7 @@
from unittest.mock import PropertyMock from unittest.mock import PropertyMock
from fritzconnection.core.exceptions import FritzConnectionException, FritzSecurityError from fritzconnection.core.exceptions import FritzConnectionException, FritzSecurityError
from fritzconnection.lib.fritztools import ArgumentNamespace
from requests.exceptions import ConnectionError as RequestsConnectionError from requests.exceptions import ConnectionError as RequestsConnectionError
from homeassistant.components.fritzbox_callmonitor.config_flow import ConnectResult from homeassistant.components.fritzbox_callmonitor.config_flow import ConnectResult
@ -58,7 +59,7 @@ MOCK_YAML_CONFIG = {
CONF_PHONEBOOK: MOCK_PHONEBOOK_ID, CONF_PHONEBOOK: MOCK_PHONEBOOK_ID,
CONF_NAME: MOCK_NAME, CONF_NAME: MOCK_NAME,
} }
MOCK_DEVICE_INFO = {FRITZ_ATTR_SERIAL_NUMBER: MOCK_SERIAL_NUMBER} MOCK_DEVICE_INFO = ArgumentNamespace({FRITZ_ATTR_SERIAL_NUMBER: MOCK_SERIAL_NUMBER})
MOCK_PHONEBOOK_INFO_1 = {FRITZ_ATTR_NAME: MOCK_PHONEBOOK_NAME_1} MOCK_PHONEBOOK_INFO_1 = {FRITZ_ATTR_NAME: MOCK_PHONEBOOK_NAME_1}
MOCK_PHONEBOOK_INFO_2 = {FRITZ_ATTR_NAME: MOCK_PHONEBOOK_NAME_2} 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}"
@ -90,7 +91,10 @@ async def test_setup_one_phonebook(hass: HomeAssistant) -> None:
"homeassistant.components.fritzbox_callmonitor.config_flow.FritzConnection.__init__", "homeassistant.components.fritzbox_callmonitor.config_flow.FritzConnection.__init__",
return_value=None, return_value=None,
), patch( ), patch(
"homeassistant.components.fritzbox_callmonitor.config_flow.FritzConnection.call_action", "homeassistant.components.fritzbox_callmonitor.config_flow.FritzStatus.__init__",
return_value=None,
), patch(
"homeassistant.components.fritzbox_callmonitor.config_flow.FritzStatus.get_device_info",
return_value=MOCK_DEVICE_INFO, return_value=MOCK_DEVICE_INFO,
), patch( ), patch(
"homeassistant.components.fritzbox_callmonitor.async_setup_entry", "homeassistant.components.fritzbox_callmonitor.async_setup_entry",
@ -126,7 +130,10 @@ async def test_setup_multiple_phonebooks(hass: HomeAssistant) -> None:
"homeassistant.components.fritzbox_callmonitor.config_flow.FritzConnection.__init__", "homeassistant.components.fritzbox_callmonitor.config_flow.FritzConnection.__init__",
return_value=None, return_value=None,
), patch( ), patch(
"homeassistant.components.fritzbox_callmonitor.config_flow.FritzConnection.call_action", "homeassistant.components.fritzbox_callmonitor.config_flow.FritzStatus.__init__",
return_value=None,
), patch(
"homeassistant.components.fritzbox_callmonitor.config_flow.FritzStatus.get_device_info",
return_value=MOCK_DEVICE_INFO, return_value=MOCK_DEVICE_INFO,
), patch( ), patch(
"homeassistant.components.fritzbox_callmonitor.base.FritzPhonebook.phonebook_info", "homeassistant.components.fritzbox_callmonitor.base.FritzPhonebook.phonebook_info",