Rename fritz coordinator module (#117440)

* Rename fritz coordinator module

* Update .coveragerc

* Adjust .coveragerc

* Adjust coverage

* Adjust coverage
This commit is contained in:
epenet 2024-05-15 21:58:29 +02:00 committed by GitHub
parent ebb02a7081
commit 0a625baeed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 57 additions and 49 deletions

View File

@ -464,8 +464,7 @@ omit =
homeassistant/components/freebox/camera.py homeassistant/components/freebox/camera.py
homeassistant/components/freebox/home_base.py homeassistant/components/freebox/home_base.py
homeassistant/components/freebox/switch.py homeassistant/components/freebox/switch.py
homeassistant/components/fritz/common.py homeassistant/components/fritz/coordinator.py
homeassistant/components/fritz/device_tracker.py
homeassistant/components/fritz/services.py homeassistant/components/fritz/services.py
homeassistant/components/fritz/switch.py homeassistant/components/fritz/switch.py
homeassistant/components/fritzbox_callmonitor/__init__.py homeassistant/components/fritzbox_callmonitor/__init__.py

View File

@ -13,7 +13,6 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from .common import AvmWrapper, FritzData
from .const import ( from .const import (
DATA_FRITZ, DATA_FRITZ,
DEFAULT_SSL, DEFAULT_SSL,
@ -22,6 +21,7 @@ from .const import (
FRITZ_EXCEPTIONS, FRITZ_EXCEPTIONS,
PLATFORMS, PLATFORMS,
) )
from .coordinator import AvmWrapper, FritzData
from .services import async_setup_services, async_unload_services from .services import async_setup_services, async_unload_services
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -16,13 +16,13 @@ from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .common import ( from .const import DOMAIN
from .coordinator import (
AvmWrapper, AvmWrapper,
ConnectionInfo, ConnectionInfo,
FritzBoxBaseCoordinatorEntity, FritzBoxBaseCoordinatorEntity,
FritzEntityDescription, FritzEntityDescription,
) )
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -19,8 +19,14 @@ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC, Device
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 .common import AvmWrapper, FritzData, FritzDevice, FritzDeviceBase, _is_tracked
from .const import BUTTON_TYPE_WOL, CONNECTION_TYPE_LAN, DATA_FRITZ, DOMAIN, MeshRoles from .const import BUTTON_TYPE_WOL, CONNECTION_TYPE_LAN, DATA_FRITZ, DOMAIN, MeshRoles
from .coordinator import (
AvmWrapper,
FritzData,
FritzDevice,
FritzDeviceBase,
_is_tracked,
)
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -32,15 +32,16 @@ from homeassistant.components.switch import DOMAIN as DEVICE_SWITCH_DOMAIN
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant, ServiceCall, callback from homeassistant.core import HomeAssistant, ServiceCall, callback
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import ( from homeassistant.helpers import device_registry as dr, entity_registry as er
device_registry as dr,
entity_registry as er,
update_coordinator,
)
from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.entity import EntityDescription from homeassistant.helpers.entity import EntityDescription
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import (
CoordinatorEntity,
DataUpdateCoordinator,
UpdateFailed,
)
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
from .const import ( from .const import (
@ -175,9 +176,7 @@ class UpdateCoordinatorDataType(TypedDict):
entity_states: dict[str, StateType | bool] entity_states: dict[str, StateType | bool]
class FritzBoxTools( class FritzBoxTools(DataUpdateCoordinator[UpdateCoordinatorDataType]):
update_coordinator.DataUpdateCoordinator[UpdateCoordinatorDataType]
): # pylint: disable=hass-enforce-coordinator-module
"""FritzBoxTools class.""" """FritzBoxTools class."""
def __init__( def __init__(
@ -342,7 +341,7 @@ class FritzBoxTools(
"call_deflections" "call_deflections"
] = await self.async_update_call_deflections() ] = await self.async_update_call_deflections()
except FRITZ_EXCEPTIONS as ex: except FRITZ_EXCEPTIONS as ex:
raise update_coordinator.UpdateFailed(ex) from ex raise UpdateFailed(ex) from ex
_LOGGER.debug("enity_data: %s", entity_data) _LOGGER.debug("enity_data: %s", entity_data)
return entity_data return entity_data
@ -779,7 +778,7 @@ class FritzBoxTools(
) from ex ) from ex
class AvmWrapper(FritzBoxTools): # pylint: disable=hass-enforce-coordinator-module class AvmWrapper(FritzBoxTools):
"""Setup AVM wrapper for API calls.""" """Setup AVM wrapper for API calls."""
async def _async_service_call( async def _async_service_call(
@ -961,7 +960,7 @@ class FritzData:
wol_buttons: dict = field(default_factory=dict) wol_buttons: dict = field(default_factory=dict)
class FritzDeviceBase(update_coordinator.CoordinatorEntity[AvmWrapper]): class FritzDeviceBase(CoordinatorEntity[AvmWrapper]):
"""Entity base class for a device connected to a FRITZ!Box device.""" """Entity base class for a device connected to a FRITZ!Box device."""
def __init__(self, avm_wrapper: AvmWrapper, device: FritzDevice) -> None: def __init__(self, avm_wrapper: AvmWrapper, device: FritzDevice) -> None:
@ -1142,7 +1141,7 @@ class FritzEntityDescription(EntityDescription, FritzRequireKeysMixin):
"""Fritz entity base description.""" """Fritz entity base description."""
class FritzBoxBaseCoordinatorEntity(update_coordinator.CoordinatorEntity[AvmWrapper]): class FritzBoxBaseCoordinatorEntity(CoordinatorEntity[AvmWrapper]):
"""Fritz host coordinator entity base class.""" """Fritz host coordinator entity base class."""
entity_description: FritzEntityDescription entity_description: FritzEntityDescription

View File

@ -11,14 +11,14 @@ from homeassistant.core import HomeAssistant, callback
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 .common import ( from .const import DATA_FRITZ, DOMAIN
from .coordinator import (
AvmWrapper, AvmWrapper,
FritzData, FritzData,
FritzDevice, FritzDevice,
FritzDeviceBase, FritzDeviceBase,
device_filter_out_from_trackers, device_filter_out_from_trackers,
) )
from .const import DATA_FRITZ, DOMAIN
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -9,8 +9,8 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from .common import AvmWrapper
from .const import DOMAIN from .const import DOMAIN
from .coordinator import AvmWrapper
TO_REDACT = {CONF_USERNAME, CONF_PASSWORD} TO_REDACT = {CONF_USERNAME, CONF_PASSWORD}

View File

@ -14,8 +14,8 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import dt as dt_util, slugify from homeassistant.util import dt as dt_util, slugify
from .common import AvmWrapper, FritzBoxBaseEntity
from .const import DOMAIN from .const import DOMAIN
from .coordinator import AvmWrapper, FritzBoxBaseEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -27,13 +27,13 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
from homeassistant.util.dt import utcnow from homeassistant.util.dt import utcnow
from .common import ( from .const import DOMAIN, DSL_CONNECTION, UPTIME_DEVIATION
from .coordinator import (
AvmWrapper, AvmWrapper,
ConnectionInfo, ConnectionInfo,
FritzBoxBaseCoordinatorEntity, FritzBoxBaseCoordinatorEntity,
FritzEntityDescription, FritzEntityDescription,
) )
from .const import DOMAIN, DSL_CONNECTION, UPTIME_DEVIATION
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -11,7 +11,6 @@ from homeassistant.core import HomeAssistant, ServiceCall
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.service import async_extract_config_entry_ids from homeassistant.helpers.service import async_extract_config_entry_ids
from .common import AvmWrapper
from .const import ( from .const import (
DOMAIN, DOMAIN,
FRITZ_SERVICES, FRITZ_SERVICES,
@ -20,6 +19,7 @@ from .const import (
SERVICE_RECONNECT, SERVICE_RECONNECT,
SERVICE_SET_GUEST_WIFI_PW, SERVICE_SET_GUEST_WIFI_PW,
) )
from .coordinator import AvmWrapper
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -17,15 +17,6 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.util import slugify from homeassistant.util import slugify
from .common import (
AvmWrapper,
FritzBoxBaseEntity,
FritzData,
FritzDevice,
FritzDeviceBase,
SwitchInfo,
device_filter_out_from_trackers,
)
from .const import ( from .const import (
DATA_FRITZ, DATA_FRITZ,
DOMAIN, DOMAIN,
@ -36,6 +27,15 @@ from .const import (
WIFI_STANDARD, WIFI_STANDARD,
MeshRoles, MeshRoles,
) )
from .coordinator import (
AvmWrapper,
FritzBoxBaseEntity,
FritzData,
FritzDevice,
FritzDeviceBase,
SwitchInfo,
device_filter_out_from_trackers,
)
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -16,8 +16,12 @@ from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .common import AvmWrapper, FritzBoxBaseCoordinatorEntity, FritzEntityDescription
from .const import DOMAIN from .const import DOMAIN
from .coordinator import (
AvmWrapper,
FritzBoxBaseCoordinatorEntity,
FritzEntityDescription,
)
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -84,7 +84,7 @@ def fc_data_mock():
def fc_class_mock(fc_data): def fc_class_mock(fc_data):
"""Fixture that sets up a mocked FritzConnection class.""" """Fixture that sets up a mocked FritzConnection class."""
with patch( with patch(
"homeassistant.components.fritz.common.FritzConnection", autospec=True "homeassistant.components.fritz.coordinator.FritzConnection", autospec=True
) as result: ) as result:
result.return_value = FritzConnectionMock(fc_data) result.return_value = FritzConnectionMock(fc_data)
yield result yield result
@ -94,7 +94,7 @@ def fc_class_mock(fc_data):
def fh_class_mock(): def fh_class_mock():
"""Fixture that sets up a mocked FritzHosts class.""" """Fixture that sets up a mocked FritzHosts class."""
with patch( with patch(
"homeassistant.components.fritz.common.FritzHosts", "homeassistant.components.fritz.coordinator.FritzHosts",
new=FritzHosts, new=FritzHosts,
) as result: ) as result:
result.get_mesh_topology = MagicMock(return_value=MOCK_MESH_DATA) result.get_mesh_topology = MagicMock(return_value=MOCK_MESH_DATA)

View File

@ -63,7 +63,7 @@ async def test_buttons(
assert button assert button
assert button.state == STATE_UNKNOWN assert button.state == STATE_UNKNOWN
with patch( with patch(
f"homeassistant.components.fritz.common.AvmWrapper.{wrapper_method}" f"homeassistant.components.fritz.coordinator.AvmWrapper.{wrapper_method}"
) as mock_press_action: ) as mock_press_action:
await hass.services.async_call( await hass.services.async_call(
BUTTON_DOMAIN, BUTTON_DOMAIN,
@ -97,7 +97,7 @@ async def test_wol_button(
assert button assert button
assert button.state == STATE_UNKNOWN assert button.state == STATE_UNKNOWN
with patch( with patch(
"homeassistant.components.fritz.common.AvmWrapper.async_wake_on_lan" "homeassistant.components.fritz.coordinator.AvmWrapper.async_wake_on_lan"
) as mock_press_action: ) as mock_press_action:
await hass.services.async_call( await hass.services.async_call(
BUTTON_DOMAIN, BUTTON_DOMAIN,

View File

@ -105,7 +105,7 @@ async def test_user(
side_effect=fc_class_mock, side_effect=fc_class_mock,
), ),
patch( patch(
"homeassistant.components.fritz.common.FritzBoxTools._update_device_info", "homeassistant.components.fritz.coordinator.FritzBoxTools._update_device_info",
return_value=MOCK_FIRMWARE_INFO, return_value=MOCK_FIRMWARE_INFO,
), ),
patch("homeassistant.components.fritz.async_setup_entry") as mock_setup_entry, patch("homeassistant.components.fritz.async_setup_entry") as mock_setup_entry,
@ -172,7 +172,7 @@ async def test_user_already_configured(
side_effect=fc_class_mock, side_effect=fc_class_mock,
), ),
patch( patch(
"homeassistant.components.fritz.common.FritzBoxTools._update_device_info", "homeassistant.components.fritz.coordinator.FritzBoxTools._update_device_info",
return_value=MOCK_FIRMWARE_INFO, return_value=MOCK_FIRMWARE_INFO,
), ),
patch( patch(
@ -323,7 +323,7 @@ async def test_reauth_successful(
side_effect=fc_class_mock, side_effect=fc_class_mock,
), ),
patch( patch(
"homeassistant.components.fritz.common.FritzBoxTools._update_device_info", "homeassistant.components.fritz.coordinator.FritzBoxTools._update_device_info",
return_value=MOCK_FIRMWARE_INFO, return_value=MOCK_FIRMWARE_INFO,
), ),
patch( patch(
@ -459,7 +459,7 @@ async def test_reconfigure_successful(
side_effect=fc_class_mock, side_effect=fc_class_mock,
), ),
patch( patch(
"homeassistant.components.fritz.common.FritzBoxTools._update_device_info", "homeassistant.components.fritz.coordinator.FritzBoxTools._update_device_info",
return_value=MOCK_FIRMWARE_INFO, return_value=MOCK_FIRMWARE_INFO,
), ),
patch( patch(
@ -522,7 +522,7 @@ async def test_reconfigure_not_successful(
side_effect=[FritzConnectionException, fc_class_mock], side_effect=[FritzConnectionException, fc_class_mock],
), ),
patch( patch(
"homeassistant.components.fritz.common.FritzBoxTools._update_device_info", "homeassistant.components.fritz.coordinator.FritzBoxTools._update_device_info",
return_value=MOCK_FIRMWARE_INFO, return_value=MOCK_FIRMWARE_INFO,
), ),
patch( patch(
@ -699,7 +699,7 @@ async def test_ssdp(hass: HomeAssistant, fc_class_mock, mock_get_source_ip) -> N
side_effect=fc_class_mock, side_effect=fc_class_mock,
), ),
patch( patch(
"homeassistant.components.fritz.common.FritzBoxTools._update_device_info", "homeassistant.components.fritz.coordinator.FritzBoxTools._update_device_info",
return_value=MOCK_FIRMWARE_INFO, return_value=MOCK_FIRMWARE_INFO,
), ),
patch("homeassistant.components.fritz.async_setup_entry") as mock_setup_entry, patch("homeassistant.components.fritz.async_setup_entry") as mock_setup_entry,

View File

@ -3,8 +3,8 @@
from __future__ import annotations from __future__ import annotations
from homeassistant.components.diagnostics import REDACTED from homeassistant.components.diagnostics import REDACTED
from homeassistant.components.fritz.common import AvmWrapper
from homeassistant.components.fritz.const import DOMAIN from homeassistant.components.fritz.const import DOMAIN
from homeassistant.components.fritz.coordinator import AvmWrapper
from homeassistant.components.fritz.diagnostics import TO_REDACT from homeassistant.components.fritz.diagnostics import TO_REDACT
from homeassistant.config_entries import ConfigEntryState from homeassistant.config_entries import ConfigEntryState
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant

View File

@ -76,7 +76,7 @@ async def test_setup_auth_fail(hass: HomeAssistant, error) -> None:
entry.add_to_hass(hass) entry.add_to_hass(hass)
with patch( with patch(
"homeassistant.components.fritz.common.FritzConnection", "homeassistant.components.fritz.coordinator.FritzConnection",
side_effect=error, side_effect=error,
): ):
await hass.config_entries.async_setup(entry.entry_id) await hass.config_entries.async_setup(entry.entry_id)
@ -96,7 +96,7 @@ async def test_setup_fail(hass: HomeAssistant, error) -> None:
entry.add_to_hass(hass) entry.add_to_hass(hass)
with patch( with patch(
"homeassistant.components.fritz.common.FritzConnection", "homeassistant.components.fritz.coordinator.FritzConnection",
side_effect=error, side_effect=error,
): ):
await hass.config_entries.async_setup(entry.entry_id) await hass.config_entries.async_setup(entry.entry_id)

View File

@ -104,7 +104,7 @@ async def test_available_update_can_be_installed(
fc_class_mock().override_services({**MOCK_FB_SERVICES, **AVAILABLE_UPDATE}) fc_class_mock().override_services({**MOCK_FB_SERVICES, **AVAILABLE_UPDATE})
with patch( with patch(
"homeassistant.components.fritz.common.FritzBoxTools.async_trigger_firmware_update", "homeassistant.components.fritz.coordinator.FritzBoxTools.async_trigger_firmware_update",
return_value=True, return_value=True,
) as mocked_update_call: ) as mocked_update_call:
entry = MockConfigEntry(domain=DOMAIN, data=MOCK_USER_DATA) entry = MockConfigEntry(domain=DOMAIN, data=MOCK_USER_DATA)