mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Fix duplicate sensor disk entities in Systemmonitor (#134139)
This commit is contained in:
parent
e7ab5afc14
commit
2288f89415
@ -429,7 +429,8 @@ async def async_setup_entry(
|
|||||||
is_enabled = check_legacy_resource(
|
is_enabled = check_legacy_resource(
|
||||||
f"{_type}_{argument}", legacy_resources
|
f"{_type}_{argument}", legacy_resources
|
||||||
)
|
)
|
||||||
loaded_resources.add(slugify(f"{_type}_{argument}"))
|
if (_add := slugify(f"{_type}_{argument}")) not in loaded_resources:
|
||||||
|
loaded_resources.add(_add)
|
||||||
entities.append(
|
entities.append(
|
||||||
SystemMonitorSensor(
|
SystemMonitorSensor(
|
||||||
coordinator,
|
coordinator,
|
||||||
|
@ -5,7 +5,7 @@ import socket
|
|||||||
from unittest.mock import Mock, patch
|
from unittest.mock import Mock, patch
|
||||||
|
|
||||||
from freezegun.api import FrozenDateTimeFactory
|
from freezegun.api import FrozenDateTimeFactory
|
||||||
from psutil._common import sdiskusage, shwtemp, snetio, snicaddr
|
from psutil._common import sdiskpart, sdiskusage, shwtemp, snetio, snicaddr
|
||||||
import pytest
|
import pytest
|
||||||
from syrupy.assertion import SnapshotAssertion
|
from syrupy.assertion import SnapshotAssertion
|
||||||
|
|
||||||
@ -504,3 +504,43 @@ async def test_remove_obsolete_entities(
|
|||||||
entity_registry.async_get("sensor.systemmonitor_network_out_veth54321")
|
entity_registry.async_get("sensor.systemmonitor_network_out_veth54321")
|
||||||
is not None
|
is not None
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||||
|
async def test_no_duplicate_disk_entities(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
mock_psutil: Mock,
|
||||||
|
mock_os: Mock,
|
||||||
|
caplog: pytest.LogCaptureFixture,
|
||||||
|
) -> None:
|
||||||
|
"""Test the sensor."""
|
||||||
|
mock_psutil.disk_usage.return_value = sdiskusage(
|
||||||
|
500 * 1024**3, 300 * 1024**3, 200 * 1024**3, 60.0
|
||||||
|
)
|
||||||
|
mock_psutil.disk_partitions.return_value = [
|
||||||
|
sdiskpart("test", "/", "ext4", ""),
|
||||||
|
sdiskpart("test2", "/media/share", "ext4", ""),
|
||||||
|
sdiskpart("test3", "/incorrect", "", ""),
|
||||||
|
sdiskpart("test4", "/media/frigate", "ext4", ""),
|
||||||
|
sdiskpart("test4", "/media/FRIGATE", "ext4", ""),
|
||||||
|
sdiskpart("hosts", "/etc/hosts", "bind", ""),
|
||||||
|
sdiskpart("proc", "/proc/run", "proc", ""),
|
||||||
|
]
|
||||||
|
|
||||||
|
mock_config_entry = MockConfigEntry(
|
||||||
|
title="System Monitor",
|
||||||
|
domain=DOMAIN,
|
||||||
|
data={},
|
||||||
|
options={
|
||||||
|
"binary_sensor": {"process": ["python3", "pip"]},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
mock_config_entry.add_to_hass(hass)
|
||||||
|
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
disk_sensor = hass.states.get("sensor.system_monitor_disk_usage_media_frigate")
|
||||||
|
assert disk_sensor is not None
|
||||||
|
assert disk_sensor.state == "60.0"
|
||||||
|
|
||||||
|
assert "Platform systemmonitor does not generate unique IDs." not in caplog.text
|
||||||
|
Loading…
x
Reference in New Issue
Block a user