mirror of
https://github.com/home-assistant/core.git
synced 2026-07-01 11:46:40 +01:00
Skip fill sensor for Rituals diffusers without fill data (#174232)
This commit is contained in:
@@ -40,6 +40,7 @@ ENTITY_DESCRIPTIONS = (
|
||||
key="fill",
|
||||
translation_key="fill",
|
||||
value_fn=lambda diffuser: diffuser.fill,
|
||||
has_fn=lambda diffuser: "fillc" in diffuser.hub_data.get("sensors", {}),
|
||||
),
|
||||
RitualsSensorEntityDescription(
|
||||
key="perfume",
|
||||
|
||||
@@ -63,6 +63,7 @@ def mock_diffuser(
|
||||
diffuser_mock.version = version
|
||||
diffuser_mock.wifi_percentage = wifi_percentage
|
||||
diffuser_mock.data = load_json_object_fixture("data.json", DOMAIN)
|
||||
diffuser_mock.hub_data = diffuser_mock.data["hub"]
|
||||
return diffuser_mock
|
||||
|
||||
|
||||
@@ -71,6 +72,24 @@ def mock_diffuser_v1_battery_cartridge() -> MagicMock:
|
||||
return mock_diffuser(hublot="lot123v1")
|
||||
|
||||
|
||||
def mock_diffuser_v3_no_battery_no_fill() -> MagicMock:
|
||||
"""Create and return a mock version 3 Diffuser without battery or fill sensor."""
|
||||
diffuser = mock_diffuser(
|
||||
hublot="lot123v3",
|
||||
battery_percentage=Exception(),
|
||||
charging=Exception(),
|
||||
fill="",
|
||||
has_battery=False,
|
||||
has_cartridge=True,
|
||||
name="Genie V3",
|
||||
perfume="Ritual of Sakura",
|
||||
version="6.0",
|
||||
)
|
||||
diffuser.data = load_json_object_fixture("data_no_fill.json", DOMAIN)
|
||||
diffuser.hub_data = diffuser.data["hub"]
|
||||
return diffuser
|
||||
|
||||
|
||||
def mock_diffuser_v2_no_battery_no_cartridge() -> MagicMock:
|
||||
"""Create and return a mock version 2 Diffuser without battery and cartridge."""
|
||||
return mock_diffuser(
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"hub": {
|
||||
"hublot": "LOT456",
|
||||
"hash": "abcdef1234567890ghijklmnopqrstuvwxyz",
|
||||
"status": 1,
|
||||
"title": null,
|
||||
"current_time": "2023-06-09T20:50",
|
||||
"cached_time": "2023-06-09T20:48",
|
||||
"ping_update": "25",
|
||||
"attributes": {
|
||||
"roomc": "4",
|
||||
"speedc": "3",
|
||||
"fanc": "1",
|
||||
"roomnamec": "Living room",
|
||||
"resetc": "",
|
||||
"fspacenamec": "",
|
||||
"fspacetypec": ""
|
||||
},
|
||||
"sensors": {
|
||||
"wific": {
|
||||
"id": 10,
|
||||
"sensor_id": 1,
|
||||
"title": "High",
|
||||
"description": "",
|
||||
"icon": "icon-signal.png",
|
||||
"image": "",
|
||||
"discover_image": "",
|
||||
"discover_url": null,
|
||||
"min_value": "-69.99",
|
||||
"max_value": "-0.00",
|
||||
"interval": "1",
|
||||
"created_at": "2017-03-10 16:17:30",
|
||||
"updated_at": "2020-06-17 16:57:53",
|
||||
"default": 0
|
||||
},
|
||||
"rfidc": {
|
||||
"id": 54,
|
||||
"sensor_id": 4,
|
||||
"title": "Private Collection Sweet Jasmine",
|
||||
"description": "",
|
||||
"icon": "icon-jasmine.png",
|
||||
"image": "background-jasmine.png",
|
||||
"discover_image": "discover-jasmine.png",
|
||||
"discover_url": "sweet-jasmine-cartridge-1105402.html",
|
||||
"min_value": "05377650",
|
||||
"max_value": "05377650",
|
||||
"interval": "",
|
||||
"created_at": "2019-04-04 07:53:32",
|
||||
"updated_at": "2021-01-26 14:17:03",
|
||||
"default": 0
|
||||
},
|
||||
"versionc": "6.0",
|
||||
"ipc": "1682963060"
|
||||
},
|
||||
"settings": [
|
||||
{
|
||||
"schedule_id": 1835730,
|
||||
"start": "07:30",
|
||||
"end": "08:30",
|
||||
"mon": 1,
|
||||
"tue": 1,
|
||||
"wed": 1,
|
||||
"thu": 1,
|
||||
"fri": 1,
|
||||
"sat": 1,
|
||||
"sun": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ from .common import (
|
||||
init_integration,
|
||||
mock_config_entry,
|
||||
mock_diffuser_v1_battery_cartridge,
|
||||
mock_diffuser_v3_no_battery_no_fill,
|
||||
)
|
||||
|
||||
|
||||
@@ -63,3 +64,19 @@ async def test_sensors_diffuser_v1_battery_cartridge(
|
||||
assert entry
|
||||
assert entry.unique_id == f"{hublot}-wifi_percentage"
|
||||
assert entry.entity_category == EntityCategory.DIAGNOSTIC
|
||||
|
||||
|
||||
async def test_sensors_diffuser_v3_no_fill(
|
||||
hass: HomeAssistant, entity_registry: er.EntityRegistry
|
||||
) -> None:
|
||||
"""Test that a Genie 3.0 without fill sensor data does not create a fill entity."""
|
||||
config_entry = mock_config_entry(unique_id="id_123_sensor_test_diffuser_v3")
|
||||
diffuser = mock_diffuser_v3_no_battery_no_fill()
|
||||
await init_integration(hass, config_entry, [diffuser])
|
||||
|
||||
assert hass.states.get("sensor.genie_v3_fill") is None
|
||||
assert entity_registry.async_get("sensor.genie_v3_fill") is None
|
||||
|
||||
state = hass.states.get("sensor.genie_v3_perfume")
|
||||
assert state
|
||||
assert state.state == diffuser.perfume
|
||||
|
||||
Reference in New Issue
Block a user