mirror of
https://github.com/home-assistant/core.git
synced 2026-09-11 02:35:09 -05:00
Allow loading UniFi entities on config options change (#88762)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
This commit is contained in:
co-authored by
Franck Nijhof
parent
ee6f969c2a
commit
9ff45ca013
@@ -635,6 +635,15 @@ async def test_option_track_devices(
|
||||
assert hass.states.get("device_tracker.client")
|
||||
assert not hass.states.get("device_tracker.device")
|
||||
|
||||
hass.config_entries.async_update_entry(
|
||||
config_entry,
|
||||
options={CONF_TRACK_DEVICES: True},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert hass.states.get("device_tracker.client")
|
||||
assert hass.states.get("device_tracker.device")
|
||||
|
||||
|
||||
async def test_option_ssid_filter(
|
||||
hass: HomeAssistant,
|
||||
@@ -1041,7 +1050,7 @@ async def test_dont_track_devices(
|
||||
"version": "4.0.42.10433",
|
||||
}
|
||||
|
||||
await setup_unifi_integration(
|
||||
config_entry = await setup_unifi_integration(
|
||||
hass,
|
||||
aioclient_mock,
|
||||
options={CONF_TRACK_DEVICES: False},
|
||||
@@ -1053,6 +1062,16 @@ async def test_dont_track_devices(
|
||||
assert hass.states.get("device_tracker.client")
|
||||
assert not hass.states.get("device_tracker.device")
|
||||
|
||||
hass.config_entries.async_update_entry(
|
||||
config_entry,
|
||||
options={CONF_TRACK_DEVICES: True},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(hass.states.async_entity_ids(TRACKER_DOMAIN)) == 2
|
||||
assert hass.states.get("device_tracker.client")
|
||||
assert hass.states.get("device_tracker.device")
|
||||
|
||||
|
||||
async def test_dont_track_wired_clients(
|
||||
hass: HomeAssistant, aioclient_mock: AiohttpClientMocker, mock_device_registry
|
||||
|
||||
@@ -14,11 +14,13 @@ from homeassistant.components.unifi.const import (
|
||||
CONF_ALLOW_UPTIME_SENSORS,
|
||||
CONF_TRACK_CLIENTS,
|
||||
CONF_TRACK_DEVICES,
|
||||
DOMAIN as UNIFI_DOMAIN,
|
||||
)
|
||||
from homeassistant.config_entries import RELOAD_AFTER_UPDATE_DELAY
|
||||
from homeassistant.const import ATTR_DEVICE_CLASS, STATE_UNAVAILABLE, EntityCategory
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||
from homeassistant.helpers.entity_registry import RegistryEntryDisabler
|
||||
import homeassistant.util.dt as dt_util
|
||||
|
||||
@@ -183,6 +185,37 @@ async def test_bandwidth_sensors(
|
||||
assert hass.states.get("sensor.wired_client_rx") is None
|
||||
assert hass.states.get("sensor.wired_client_tx") is None
|
||||
|
||||
# Enable option
|
||||
|
||||
options[CONF_ALLOW_BANDWIDTH_SENSORS] = True
|
||||
hass.config_entries.async_update_entry(config_entry, options=options.copy())
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(hass.states.async_all()) == 5
|
||||
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 4
|
||||
assert hass.states.get("sensor.wireless_client_rx")
|
||||
assert hass.states.get("sensor.wireless_client_tx")
|
||||
assert hass.states.get("sensor.wired_client_rx")
|
||||
assert hass.states.get("sensor.wired_client_tx")
|
||||
|
||||
# Try to add the sensors again, using a signal
|
||||
|
||||
clients_connected = {wired_client["mac"], wireless_client["mac"]}
|
||||
devices_connected = set()
|
||||
|
||||
controller = hass.data[UNIFI_DOMAIN][config_entry.entry_id]
|
||||
|
||||
async_dispatcher_send(
|
||||
hass,
|
||||
controller.signal_update,
|
||||
clients_connected,
|
||||
devices_connected,
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(hass.states.async_all()) == 5
|
||||
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 4
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("initial_uptime", "event_uptime", "new_uptime"),
|
||||
@@ -267,6 +300,35 @@ async def test_uptime_sensors(
|
||||
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 0
|
||||
assert hass.states.get("sensor.client1_uptime") is None
|
||||
|
||||
# Enable option
|
||||
|
||||
options[CONF_ALLOW_UPTIME_SENSORS] = True
|
||||
with patch("homeassistant.util.dt.now", return_value=now):
|
||||
hass.config_entries.async_update_entry(config_entry, options=options.copy())
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(hass.states.async_all()) == 2
|
||||
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 1
|
||||
assert hass.states.get("sensor.client1_uptime")
|
||||
|
||||
# Try to add the sensors again, using a signal
|
||||
|
||||
clients_connected = {uptime_client["mac"]}
|
||||
devices_connected = set()
|
||||
|
||||
controller = hass.data[UNIFI_DOMAIN][config_entry.entry_id]
|
||||
|
||||
async_dispatcher_send(
|
||||
hass,
|
||||
controller.signal_update,
|
||||
clients_connected,
|
||||
devices_connected,
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(hass.states.async_all()) == 2
|
||||
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 1
|
||||
|
||||
|
||||
async def test_remove_sensors(
|
||||
hass: HomeAssistant,
|
||||
|
||||
Reference in New Issue
Block a user