mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 23:27:37 +00:00
Remove deprecated state attributes in seventeentrack (#142622)
This commit is contained in:
parent
b3eb0301ae
commit
83c3275054
@ -2,11 +2,8 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
|
||||||
|
|
||||||
from homeassistant.components.sensor import SensorEntity
|
from homeassistant.components.sensor import SensorEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import ATTR_FRIENDLY_NAME, ATTR_LOCATION
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
|
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
|
||||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
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 homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from . import SeventeenTrackCoordinator
|
from . import SeventeenTrackCoordinator
|
||||||
from .const import (
|
from .const import ATTRIBUTION, DOMAIN
|
||||||
ATTR_INFO_TEXT,
|
|
||||||
ATTR_PACKAGES,
|
|
||||||
ATTR_STATUS,
|
|
||||||
ATTR_TIMESTAMP,
|
|
||||||
ATTR_TRACKING_NUMBER,
|
|
||||||
ATTRIBUTION,
|
|
||||||
DOMAIN,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
@ -81,22 +70,3 @@ class SeventeenTrackSummarySensor(SeventeenTrackSensor):
|
|||||||
def native_value(self) -> StateType:
|
def native_value(self) -> StateType:
|
||||||
"""Return the state of the sensor."""
|
"""Return the state of the sensor."""
|
||||||
return self.coordinator.data.summary[self._status]["quantity"]
|
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
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
@ -4,20 +4,12 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from unittest.mock import AsyncMock
|
from unittest.mock import AsyncMock
|
||||||
|
|
||||||
from freezegun.api import FrozenDateTimeFactory
|
|
||||||
from pyseventeentrack.errors import SeventeenTrackError
|
from pyseventeentrack.errors import SeventeenTrackError
|
||||||
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.setup import async_setup_component
|
|
||||||
|
|
||||||
from . import goto_future, init_integration
|
from . import init_integration
|
||||||
from .conftest import (
|
from .conftest import DEFAULT_SUMMARY, get_package
|
||||||
DEFAULT_SUMMARY,
|
|
||||||
DEFAULT_SUMMARY_LENGTH,
|
|
||||||
NEW_SUMMARY_DATA,
|
|
||||||
VALID_PLATFORM_CONFIG_FULL,
|
|
||||||
get_package,
|
|
||||||
)
|
|
||||||
|
|
||||||
from tests.common import MockConfigEntry
|
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
|
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(
|
async def test_summary_error(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
mock_seventeentrack: AsyncMock,
|
mock_seventeentrack: AsyncMock,
|
||||||
@ -129,13 +89,3 @@ async def test_summary_error(
|
|||||||
assert (
|
assert (
|
||||||
hass.states.get("sensor.seventeentrack_packages_ready_to_be_picked_up") is None
|
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
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user