From f7ef9eb91b55589a93d7adbbc92719110401559f Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Sun, 18 Sep 2022 03:08:55 +0200 Subject: [PATCH] Remove low level call from fritzbox_callmonitor (#78668) --- .../components/fritzbox_callmonitor/config_flow.py | 11 ++++------- .../components/fritzbox_callmonitor/const.py | 2 -- .../fritzbox_callmonitor/test_config_flow.py | 13 ++++++++++--- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/homeassistant/components/fritzbox_callmonitor/config_flow.py b/homeassistant/components/fritzbox_callmonitor/config_flow.py index 5df1e7fc215..982d888d22a 100644 --- a/homeassistant/components/fritzbox_callmonitor/config_flow.py +++ b/homeassistant/components/fritzbox_callmonitor/config_flow.py @@ -5,6 +5,7 @@ from typing import Any, cast from fritzconnection import FritzConnection from fritzconnection.core.exceptions import FritzConnectionException, FritzSecurityError +from fritzconnection.lib.fritzstatus import FritzStatus from requests.exceptions import ConnectionError as RequestsConnectionError import voluptuous as vol @@ -29,10 +30,7 @@ from .const import ( DEFAULT_PORT, DEFAULT_USERNAME, DOMAIN, - FRITZ_ACTION_GET_INFO, FRITZ_ATTR_NAME, - FRITZ_ATTR_SERIAL_NUMBER, - FRITZ_SERVICE_DEVICE_INFO, SERIAL_NUMBER, ) @@ -104,10 +102,9 @@ class FritzBoxCallMonitorConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): fritz_connection = FritzConnection( address=self._host, user=self._username, password=self._password ) - device_info = fritz_connection.call_action( - FRITZ_SERVICE_DEVICE_INFO, FRITZ_ACTION_GET_INFO - ) - self._serial_number = device_info[FRITZ_ATTR_SERIAL_NUMBER] + fritz_status = FritzStatus(fc=fritz_connection) + device_info = fritz_status.get_device_info() + self._serial_number = device_info.serial_number return ConnectResult.SUCCESS except RequestsConnectionError: diff --git a/homeassistant/components/fritzbox_callmonitor/const.py b/homeassistant/components/fritzbox_callmonitor/const.py index 9939a73bc18..ccc5a45e61f 100644 --- a/homeassistant/components/fritzbox_callmonitor/const.py +++ b/homeassistant/components/fritzbox_callmonitor/const.py @@ -18,10 +18,8 @@ ICON_PHONE: Final = "mdi:phone" ATTR_PREFIXES = "prefixes" -FRITZ_ACTION_GET_INFO = "GetInfo" FRITZ_ATTR_NAME = "name" FRITZ_ATTR_SERIAL_NUMBER = "NewSerialNumber" -FRITZ_SERVICE_DEVICE_INFO = "DeviceInfo" UNKNOWN_NAME = "unknown" SERIAL_NUMBER = "serial_number" diff --git a/tests/components/fritzbox_callmonitor/test_config_flow.py b/tests/components/fritzbox_callmonitor/test_config_flow.py index 94d5bdc8eeb..2aa68af0758 100644 --- a/tests/components/fritzbox_callmonitor/test_config_flow.py +++ b/tests/components/fritzbox_callmonitor/test_config_flow.py @@ -2,6 +2,7 @@ from unittest.mock import PropertyMock from fritzconnection.core.exceptions import FritzConnectionException, FritzSecurityError +from fritzconnection.lib.fritztools import ArgumentNamespace from requests.exceptions import ConnectionError as RequestsConnectionError from homeassistant.components.fritzbox_callmonitor.config_flow import ConnectResult @@ -58,7 +59,7 @@ MOCK_YAML_CONFIG = { CONF_PHONEBOOK: MOCK_PHONEBOOK_ID, 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_2 = {FRITZ_ATTR_NAME: MOCK_PHONEBOOK_NAME_2} 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__", return_value=None, ), 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, ), patch( "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__", return_value=None, ), 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, ), patch( "homeassistant.components.fritzbox_callmonitor.base.FritzPhonebook.phonebook_info",