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:
parent
5f03589d3e
commit
5f73c73a88
2 changed files with 41 additions and 14 deletions
|
@ -13,7 +13,6 @@ from homeassistant.const import (
|
||||||
ATTR_NAME,
|
ATTR_NAME,
|
||||||
CONF_UNIT_OF_MEASUREMENT,
|
CONF_UNIT_OF_MEASUREMENT,
|
||||||
CONF_ZONE,
|
CONF_ZONE,
|
||||||
UnitOfLength,
|
|
||||||
)
|
)
|
||||||
from homeassistant.core import (
|
from homeassistant.core import (
|
||||||
Event,
|
Event,
|
||||||
|
@ -27,7 +26,6 @@ from homeassistant.helpers.issue_registry import IssueSeverity, async_create_iss
|
||||||
from homeassistant.helpers.typing import ConfigType
|
from homeassistant.helpers.typing import ConfigType
|
||||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||||
from homeassistant.util.location import distance
|
from homeassistant.util.location import distance
|
||||||
from homeassistant.util.unit_conversion import DistanceConverter
|
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
ATTR_DIR_OF_TRAVEL,
|
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(
|
def _calc_distance_to_zone(
|
||||||
self,
|
self,
|
||||||
zone: State,
|
zone: State,
|
||||||
|
|
|
@ -879,3 +879,44 @@ async def test_sensor_unique_ids(
|
||||||
assert (
|
assert (
|
||||||
entity.unique_id == f"{mock_config.entry_id}_device_tracker.test2_dist_to_zone"
|
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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue