Remove deprecated state attributes in seventeentrack (#142622)

This commit is contained in:
Joost Lekkerkerker 2025-04-14 14:40:08 +02:00 committed by GitHub
parent b3eb0301ae
commit 83c3275054
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 83 deletions

View File

@ -2,11 +2,8 @@
from __future__ import annotations
from typing import Any
from homeassistant.components.sensor import SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_FRIENDLY_NAME, ATTR_LOCATION
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
@ -14,15 +11,7 @@ from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import SeventeenTrackCoordinator
from .const import (
ATTR_INFO_TEXT,
ATTR_PACKAGES,
ATTR_STATUS,
ATTR_TIMESTAMP,
ATTR_TRACKING_NUMBER,
ATTRIBUTION,
DOMAIN,
)
from .const import ATTRIBUTION, DOMAIN
async def async_setup_entry(
@ -81,22 +70,3 @@ class SeventeenTrackSummarySensor(SeventeenTrackSensor):
def native_value(self) -> StateType:
"""Return the state of the sensor."""
return self.coordinator.data.summary[self._status]["quantity"]
# This has been deprecated in 2024.8, will be removed in 2025.2
@property
def extra_state_attributes(self) -> dict[str, Any] | None:
"""Return the state attributes."""
packages = self.coordinator.data.summary[self._status]["packages"]
return {
ATTR_PACKAGES: [
{
ATTR_TRACKING_NUMBER: package.tracking_number,
ATTR_LOCATION: package.location,
ATTR_STATUS: package.status,
ATTR_TIMESTAMP: package.timestamp,
ATTR_INFO_TEXT: package.info_text,
ATTR_FRIENDLY_NAME: package.friendly_name,
}
for package in packages
]
}

View File

@ -4,20 +4,12 @@ from __future__ import annotations
from unittest.mock import AsyncMock
from freezegun.api import FrozenDateTimeFactory
from pyseventeentrack.errors import SeventeenTrackError
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
from . import goto_future, init_integration
from .conftest import (
DEFAULT_SUMMARY,
DEFAULT_SUMMARY_LENGTH,
NEW_SUMMARY_DATA,
VALID_PLATFORM_CONFIG_FULL,
get_package,
)
from . import init_integration
from .conftest import DEFAULT_SUMMARY, get_package
from tests.common import MockConfigEntry
@ -78,38 +70,6 @@ async def test_package_error(
assert hass.states.get("sensor.17track_package_friendly_name_1") is None
async def test_summary_correctly_updated(
hass: HomeAssistant,
freezer: FrozenDateTimeFactory,
mock_seventeentrack: AsyncMock,
mock_config_entry: MockConfigEntry,
) -> None:
"""Ensure summary entities are not duplicated."""
package = get_package(status=30)
mock_seventeentrack.return_value.profile.packages.return_value = [package]
await init_integration(hass, mock_config_entry)
assert len(hass.states.async_entity_ids()) == DEFAULT_SUMMARY_LENGTH
state_ready_picked = hass.states.get("sensor.17track_ready_to_be_picked_up")
assert state_ready_picked is not None
assert len(state_ready_picked.attributes["packages"]) == 1
mock_seventeentrack.return_value.profile.packages.return_value = []
mock_seventeentrack.return_value.profile.summary.return_value = NEW_SUMMARY_DATA
await goto_future(hass, freezer)
assert len(hass.states.async_entity_ids()) == len(NEW_SUMMARY_DATA)
for state in hass.states.async_all():
assert state.state == "1"
state_ready_picked = hass.states.get("sensor.17track_ready_to_be_picked_up")
assert state_ready_picked is not None
assert len(state_ready_picked.attributes["packages"]) == 0
async def test_summary_error(
hass: HomeAssistant,
mock_seventeentrack: AsyncMock,
@ -129,13 +89,3 @@ async def test_summary_error(
assert (
hass.states.get("sensor.seventeentrack_packages_ready_to_be_picked_up") is None
)
async def test_non_valid_platform_config(
hass: HomeAssistant, mock_seventeentrack: AsyncMock
) -> None:
"""Test if login fails."""
mock_seventeentrack.return_value.profile.login.return_value = False
assert await async_setup_component(hass, "sensor", VALID_PLATFORM_CONFIG_FULL)
await hass.async_block_till_done()
assert len(hass.states.async_entity_ids()) == 0