Add number state to prometheus metrics (#102518)

This commit is contained in:
Max 2023-11-13 17:03:08 +01:00 committed by GitHub
parent ba3269540f
commit 1e57bc5415
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 76 additions and 5 deletions

View file

@ -20,6 +20,7 @@ from homeassistant.components import (
input_number,
light,
lock,
number,
person,
prometheus,
sensor,
@ -292,6 +293,30 @@ async def test_input_number(client, input_number_entities) -> None:
)
@pytest.mark.parametrize("namespace", [""])
async def test_number(client, number_entities) -> None:
"""Test prometheus metrics for number."""
body = await generate_latest_metrics(client)
assert (
'number_state{domain="number",'
'entity="number.threshold",'
'friendly_name="Threshold"} 5.2' in body
)
assert (
'number_state{domain="number",'
'entity="number.brightness",'
'friendly_name="None"} 60.0' in body
)
assert (
'number_state_celsius{domain="number",'
'entity="number.target_temperature",'
'friendly_name="Target temperature"} 22.7' in body
)
@pytest.mark.parametrize("namespace", [""])
async def test_battery(client, sensor_entities) -> None:
"""Test prometheus metrics for battery."""
@ -1382,6 +1407,46 @@ async def input_number_fixture(
return data
@pytest.fixture(name="number_entities")
async def number_fixture(
hass: HomeAssistant, entity_registry: er.EntityRegistry
) -> dict[str, er.RegistryEntry]:
"""Simulate number entities."""
data = {}
number_1 = entity_registry.async_get_or_create(
domain=number.DOMAIN,
platform="test",
unique_id="number_1",
suggested_object_id="threshold",
original_name="Threshold",
)
set_state_with_entry(hass, number_1, 5.2)
data["number_1"] = number_1
number_2 = entity_registry.async_get_or_create(
domain=number.DOMAIN,
platform="test",
unique_id="number_2",
suggested_object_id="brightness",
)
set_state_with_entry(hass, number_2, 60)
data["number_2"] = number_2
number_3 = entity_registry.async_get_or_create(
domain=number.DOMAIN,
platform="test",
unique_id="number_3",
suggested_object_id="target_temperature",
original_name="Target temperature",
unit_of_measurement=UnitOfTemperature.CELSIUS,
)
set_state_with_entry(hass, number_3, 22.7)
data["number_3"] = number_3
await hass.async_block_till_done()
return data
@pytest.fixture(name="input_boolean_entities")
async def input_boolean_fixture(
hass: HomeAssistant, entity_registry: er.EntityRegistry