Do not return router as source_type for Tractive device_tracker entity (#141188)

* Do not return router as source_type

* Add test

* Update stale docstring

---------

Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
This commit is contained in:
Maciej Bieniek 2025-03-24 17:16:59 +01:00 committed by GitHub
parent 95cc3e31f5
commit 1166c9d927
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 29 additions and 3 deletions

View File

@ -55,11 +55,9 @@ class TractiveDeviceTracker(TractiveEntity, TrackerEntity):
@property
def source_type(self) -> SourceType:
"""Return the source type, eg gps or router, of the device."""
"""Return the source type of the device."""
if self._source_type == "PHONE":
return SourceType.BLUETOOTH
if self._source_type == "KNOWN_WIFI":
return SourceType.ROUTER
return SourceType.GPS
@property

View File

@ -59,3 +59,31 @@ async def test_source_type_phone(
hass.states.get("device_tracker.test_pet_tracker").attributes["source_type"]
is SourceType.BLUETOOTH
)
async def test_source_type_gps(
hass: HomeAssistant,
mock_tractive_client: AsyncMock,
mock_config_entry: MockConfigEntry,
) -> None:
"""Test if the source type is GPS when the location sensor is KNOWN WIFI."""
await init_integration(hass, mock_config_entry)
mock_tractive_client.send_position_event(
mock_config_entry,
{
"tracker_id": "device_id_123",
"position": {
"latlong": [22.333, 44.555],
"accuracy": 99,
"sensor_used": "KNOWN_WIFI",
},
},
)
mock_tractive_client.send_hardware_event(mock_config_entry)
await hass.async_block_till_done()
assert (
hass.states.get("device_tracker.test_pet_tracker").attributes["source_type"]
is SourceType.GPS
)