Address Starlink code quality and add update sensor (#86066)

* Use dt.now

* Bring back update binary sensor

* Don't patch coordinator

* Add silver quality scale
This commit is contained in:
Jack Boswell 2023-01-17 21:10:40 +13:00 committed by GitHub
parent 4aba3fdad6
commit ec1b4d5651
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 13 deletions

View file

@ -58,6 +58,12 @@ class StarlinkBinarySensorEntity(StarlinkEntity, BinarySensorEntity):
BINARY_SENSORS = [
StarlinkBinarySensorEntityDescription(
key="update",
name="Update available",
device_class=BinarySensorDeviceClass.UPDATE,
value_fn=lambda data: data.alert["alert_install_pending"],
),
StarlinkBinarySensorEntityDescription(
key="roaming",
name="Roaming mode",

View file

@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/starlink",
"requirements": ["starlink-grpc-core==1.1.1"],
"codeowners": ["@boswelja"],
"iot_class": "local_polling"
"iot_class": "local_polling",
"quality_scale": "silver"
}

View file

@ -17,6 +17,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.util.dt import now
from .const import DOMAIN
from .coordinator import StarlinkData
@ -108,7 +109,6 @@ SENSORS: tuple[StarlinkSensorEntityDescription, ...] = (
icon="mdi:clock",
device_class=SensorDeviceClass.TIMESTAMP,
entity_category=EntityCategory.DIAGNOSTIC,
value_fn=lambda data: datetime.now().astimezone()
- timedelta(seconds=data.status["uptime"]),
value_fn=lambda data: now() - timedelta(seconds=data.status["uptime"]),
),
)

View file

@ -3,23 +3,17 @@ from unittest.mock import patch
from starlink_grpc import StatusDict
from homeassistant.components.starlink.coordinator import (
StarlinkData,
StarlinkUpdateCoordinator,
)
SETUP_ENTRY_PATCHER = patch(
"homeassistant.components.starlink.async_setup_entry", return_value=True
)
COORDINATOR_SUCCESS_PATCHER = patch.object(
StarlinkUpdateCoordinator,
"_async_update_data",
return_value=StarlinkData(
COORDINATOR_SUCCESS_PATCHER = patch(
"homeassistant.components.starlink.coordinator.status_data",
return_value=[
StatusDict(id="1", software_version="1", hardware_version="1"),
{},
{},
),
],
)
DEVICE_FOUND_PATCHER = patch(