Add entity translations to Speedtest.net (#96168)

* Add entity translations to Speedtest.net

* Fix tests
This commit is contained in:
Joost Lekkerkerker 2023-07-09 20:20:39 +02:00 committed by GitHub
parent 0735b39fbb
commit 8bbb395bec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 13 deletions

View file

@ -44,20 +44,20 @@ class SpeedtestSensorEntityDescription(SensorEntityDescription):
SENSOR_TYPES: tuple[SpeedtestSensorEntityDescription, ...] = (
SpeedtestSensorEntityDescription(
key="ping",
name="Ping",
translation_key="ping",
native_unit_of_measurement=UnitOfTime.MILLISECONDS,
state_class=SensorStateClass.MEASUREMENT,
),
SpeedtestSensorEntityDescription(
key="download",
name="Download",
translation_key="download",
native_unit_of_measurement=UnitOfDataRate.MEGABITS_PER_SECOND,
state_class=SensorStateClass.MEASUREMENT,
value=lambda value: round(value / 10**6, 2),
),
SpeedtestSensorEntityDescription(
key="upload",
name="Upload",
translation_key="upload",
native_unit_of_measurement=UnitOfDataRate.MEGABITS_PER_SECOND,
state_class=SensorStateClass.MEASUREMENT,
value=lambda value: round(value / 10**6, 2),

View file

@ -17,5 +17,18 @@
}
}
}
},
"entity": {
"sensor": {
"ping": {
"name": "Ping"
},
"download": {
"name": "Download"
},
"upload": {
"name": "Upload"
}
}
}
}

View file

@ -3,8 +3,6 @@ from unittest.mock import MagicMock
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
from homeassistant.components.speedtestdotnet import DOMAIN
from homeassistant.components.speedtestdotnet.const import DEFAULT_NAME
from homeassistant.components.speedtestdotnet.sensor import SENSOR_TYPES
from homeassistant.core import HomeAssistant, State
from . import MOCK_RESULTS, MOCK_SERVERS, MOCK_STATES
@ -27,10 +25,17 @@ async def test_speedtestdotnet_sensors(
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 3
for description in SENSOR_TYPES:
sensor = hass.states.get(f"sensor.{DEFAULT_NAME}_{description.name}")
assert sensor
assert sensor.state == MOCK_STATES[description.key]
sensor = hass.states.get("sensor.speedtest_ping")
assert sensor
assert sensor.state == MOCK_STATES["ping"]
sensor = hass.states.get("sensor.speedtest_download")
assert sensor
assert sensor.state == MOCK_STATES["download"]
sensor = hass.states.get("sensor.speedtest_ping")
assert sensor
assert sensor.state == MOCK_STATES["ping"]
async def test_restore_last_state(hass: HomeAssistant, mock_api: MagicMock) -> None:
@ -50,7 +55,14 @@ async def test_restore_last_state(hass: HomeAssistant, mock_api: MagicMock) -> N
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 3
for description in SENSOR_TYPES:
sensor = hass.states.get(f"sensor.speedtest_{description.name}")
assert sensor
assert sensor.state == MOCK_STATES[description.key]
sensor = hass.states.get("sensor.speedtest_ping")
assert sensor
assert sensor.state == MOCK_STATES["ping"]
sensor = hass.states.get("sensor.speedtest_download")
assert sensor
assert sensor.state == MOCK_STATES["download"]
sensor = hass.states.get("sensor.speedtest_ping")
assert sensor
assert sensor.state == MOCK_STATES["ping"]