Improve test coverage for Proximity (#123523)

* remove unneccessary type checking

* remove unused method after #123158

* test when tracked zone is removed
This commit is contained in:
Michael 2024-08-10 13:21:01 +02:00 committed by GitHub
parent 5f03589d3e
commit 5f73c73a88
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 41 additions and 14 deletions

View file

@ -13,7 +13,6 @@ from homeassistant.const import (
ATTR_NAME,
CONF_UNIT_OF_MEASUREMENT,
CONF_ZONE,
UnitOfLength,
)
from homeassistant.core import (
Event,
@ -27,7 +26,6 @@ from homeassistant.helpers.issue_registry import IssueSeverity, async_create_iss
from homeassistant.helpers.typing import ConfigType
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from homeassistant.util.location import distance
from homeassistant.util.unit_conversion import DistanceConverter
from .const import (
ATTR_DIR_OF_TRAVEL,
@ -145,18 +143,6 @@ class ProximityDataUpdateCoordinator(DataUpdateCoordinator[ProximityData]):
},
)
def convert_legacy(self, value: float | str) -> float | str:
"""Round and convert given distance value."""
if isinstance(value, str):
return value
return round(
DistanceConverter.convert(
value,
UnitOfLength.METERS,
self.unit_of_measurement,
)
)
def _calc_distance_to_zone(
self,
zone: State,

View file

@ -879,3 +879,44 @@ async def test_sensor_unique_ids(
assert (
entity.unique_id == f"{mock_config.entry_id}_device_tracker.test2_dist_to_zone"
)
async def test_tracked_zone_is_removed(hass: HomeAssistant) -> None:
"""Test that tracked zone is removed."""
await async_setup_single_entry(hass, "zone.home", ["device_tracker.test1"], [], 1)
hass.states.async_set(
"device_tracker.test1",
"home",
{"friendly_name": "test1", "latitude": 2.1, "longitude": 1.1},
)
await hass.async_block_till_done()
# check sensor entities
state = hass.states.get("sensor.home_nearest_device")
assert state.state == "test1"
entity_base_name = "sensor.home_test1"
state = hass.states.get(f"{entity_base_name}_distance")
assert state.state == "0"
state = hass.states.get(f"{entity_base_name}_direction_of_travel")
assert state.state == "arrived"
# remove tracked zone and move tracked entity
assert hass.states.async_remove("zone.home")
hass.states.async_set(
"device_tracker.test1",
"home",
{"friendly_name": "test1", "latitude": 2.2, "longitude": 1.2},
)
await hass.async_block_till_done()
# check sensor entities
state = hass.states.get("sensor.home_nearest_device")
assert state.state == STATE_UNKNOWN
entity_base_name = "sensor.home_test1"
state = hass.states.get(f"{entity_base_name}_distance")
assert state.state == STATE_UNAVAILABLE
state = hass.states.get(f"{entity_base_name}_direction_of_travel")
assert state.state == STATE_UNAVAILABLE