Use enum sensor device class in UptimeRobot (#83111)

pull/83288/head
Franck Nijhof 2022-12-05 10:36:16 +01:00 committed by GitHub
parent c7a6b5983f
commit 40d337479e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 43 additions and 13 deletions

View File

@ -3,7 +3,11 @@ from __future__ import annotations
from typing import TypedDict
from homeassistant.components.sensor import SensorEntity, SensorEntityDescription
from homeassistant.components.sensor import (
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import EntityCategory
@ -44,7 +48,9 @@ async def async_setup_entry(
key=str(monitor.id),
name=monitor.friendly_name,
entity_category=EntityCategory.DIAGNOSTIC,
device_class="uptimerobot__monitor_status",
device_class=SensorDeviceClass.ENUM,
options=["down", "not_checked_yet", "pause", "seems_down", "up"],
translation_key="monitor_status",
),
monitor=monitor,
)

View File

@ -28,5 +28,18 @@
"reauth_failed_existing": "Could not update the config entry, please remove the integration and set it up again.",
"unknown": "[%key:common::config_flow::error::unknown%]"
}
},
"entity": {
"sensor": {
"monitor_status": {
"state": {
"down": "Down",
"not_checked_yet": "Not checked yet",
"pause": "Pause",
"seems_down": "Seems down",
"up": "Up"
}
}
}
}
}

View File

@ -1,11 +0,0 @@
{
"state": {
"uptimerobot__monitor_status": {
"pause": "Pause",
"not_checked_yet": "Not checked yet",
"up": "Up",
"seems_down": "Seems down",
"down": "Down"
}
}
}

View File

@ -28,5 +28,18 @@
"description": "You need to supply the 'main' API key from UptimeRobot"
}
}
},
"entity": {
"sensor": {
"monitor_status": {
"state": {
"down": "Down",
"not_checked_yet": "Not checked yet",
"pause": "Pause",
"seems_down": "Seems down",
"up": "Up"
}
}
}
}
}

View File

@ -4,6 +4,7 @@ from unittest.mock import patch
from pyuptimerobot import UptimeRobotAuthenticationException
from homeassistant.components.sensor import SensorDeviceClass
from homeassistant.components.uptimerobot.const import COORDINATOR_UPDATE_INTERVAL
from homeassistant.const import STATE_UNAVAILABLE
from homeassistant.core import HomeAssistant
@ -30,6 +31,14 @@ async def test_presentation(hass: HomeAssistant) -> None:
assert entity.state == STATE_UP
assert entity.attributes["icon"] == SENSOR_ICON
assert entity.attributes["target"] == MOCK_UPTIMEROBOT_MONITOR["url"]
assert entity.attributes["device_class"] == SensorDeviceClass.ENUM
assert entity.attributes["options"] == [
"down",
"not_checked_yet",
"pause",
"seems_down",
"up",
]
async def test_unaviable_on_update_failure(hass: HomeAssistant) -> None: