mirror of
https://github.com/home-assistant/core.git
synced 2025-07-28 07:37:34 +00:00
Use None for Unknown state in Whirlpool sensor (#143582)
This commit is contained in:
parent
993ebc9eba
commit
f86e85b931
@ -25,7 +25,7 @@ from .entity import WhirlpoolEntity
|
|||||||
SCAN_INTERVAL = timedelta(minutes=5)
|
SCAN_INTERVAL = timedelta(minutes=5)
|
||||||
|
|
||||||
WASHER_TANK_FILL = {
|
WASHER_TANK_FILL = {
|
||||||
0: "unknown",
|
0: None,
|
||||||
1: "empty",
|
1: "empty",
|
||||||
2: "25",
|
2: "25",
|
||||||
3: "50",
|
3: "50",
|
||||||
@ -120,7 +120,7 @@ WASHER_SENSORS: tuple[WhirlpoolSensorEntityDescription, ...] = (
|
|||||||
translation_key="whirlpool_tank",
|
translation_key="whirlpool_tank",
|
||||||
entity_registry_enabled_default=False,
|
entity_registry_enabled_default=False,
|
||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
options=list(WASHER_TANK_FILL.values()),
|
options=[value for value in WASHER_TANK_FILL.values() if value],
|
||||||
value_fn=lambda washer: WASHER_TANK_FILL.get(washer.get_dispense_1_level()),
|
value_fn=lambda washer: WASHER_TANK_FILL.get(washer.get_dispense_1_level()),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -160,7 +160,6 @@
|
|||||||
'area_id': None,
|
'area_id': None,
|
||||||
'capabilities': dict({
|
'capabilities': dict({
|
||||||
'options': list([
|
'options': list([
|
||||||
'unknown',
|
|
||||||
'empty',
|
'empty',
|
||||||
'25',
|
'25',
|
||||||
'50',
|
'50',
|
||||||
@ -202,7 +201,6 @@
|
|||||||
'device_class': 'enum',
|
'device_class': 'enum',
|
||||||
'friendly_name': 'Washer Detergent level',
|
'friendly_name': 'Washer Detergent level',
|
||||||
'options': list([
|
'options': list([
|
||||||
'unknown',
|
|
||||||
'empty',
|
'empty',
|
||||||
'25',
|
'25',
|
||||||
'50',
|
'50',
|
||||||
|
@ -299,3 +299,44 @@ async def test_washer_dryer_door_open_state(
|
|||||||
await trigger_attr_callback(hass, mock_instance)
|
await trigger_attr_callback(hass, mock_instance)
|
||||||
state = hass.states.get(entity_id)
|
state = hass.states.get(entity_id)
|
||||||
assert state.state == "running_maincycle"
|
assert state.state == "running_maincycle"
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
("entity_id", "mock_fixture", "mock_method_name", "values"),
|
||||||
|
[
|
||||||
|
(
|
||||||
|
"sensor.washer_detergent_level",
|
||||||
|
"mock_washer_api",
|
||||||
|
"get_dispense_1_level",
|
||||||
|
[
|
||||||
|
(0, STATE_UNKNOWN),
|
||||||
|
(1, "empty"),
|
||||||
|
(2, "25"),
|
||||||
|
(3, "50"),
|
||||||
|
(4, "100"),
|
||||||
|
(5, "active"),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||||
|
async def test_simple_enum_sensors(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
entity_id: str,
|
||||||
|
mock_fixture: str,
|
||||||
|
mock_method_name: str,
|
||||||
|
values: list[tuple[int, str]],
|
||||||
|
request: pytest.FixtureRequest,
|
||||||
|
) -> None:
|
||||||
|
"""Test simple enum sensors where state maps directly from a single API value."""
|
||||||
|
await init_integration(hass)
|
||||||
|
|
||||||
|
mock_instance = request.getfixturevalue(mock_fixture)
|
||||||
|
mock_method = getattr(mock_instance, mock_method_name)
|
||||||
|
for raw_value, expected_state in values:
|
||||||
|
mock_method.return_value = raw_value
|
||||||
|
|
||||||
|
await trigger_attr_callback(hass, mock_instance)
|
||||||
|
state = hass.states.get(entity_id)
|
||||||
|
assert state is not None
|
||||||
|
assert state.state == expected_state
|
||||||
|
Loading…
x
Reference in New Issue
Block a user