Add DPI Restriction switch to UniFi integration (#42499)
* initial implementation for controlling DPI restrictions * address PR review comments and add DataUpdateCoordinator * fix existing tests against new lib version * add tests for DPI switches * bump aiounifi * listen to events instead of polling * fix tests * remove useless test * bump aiounifi * rename device to UniFi Controller per PR feedback
This commit is contained in:
parent
aab0ff2ea5
commit
5a4c1dbcc4
14 changed files with 309 additions and 42 deletions
|
@ -8,6 +8,7 @@ from homeassistant.components.unifi.const import (
|
|||
CONF_BLOCK_CLIENT,
|
||||
CONF_CONTROLLER,
|
||||
CONF_DETECTION_TIME,
|
||||
CONF_DPI_RESTRICTIONS,
|
||||
CONF_IGNORE_WIRED_BUG,
|
||||
CONF_POE_CLIENTS,
|
||||
CONF_SITE_ID,
|
||||
|
@ -72,6 +73,14 @@ WLANS = [
|
|||
{"name": "SSID 2", "name_combine_enabled": False, "name_combine_suffix": "_IOT"},
|
||||
]
|
||||
|
||||
DPI_GROUPS = [
|
||||
{
|
||||
"_id": "5ba29dd8e3c58f026e9d7c4a",
|
||||
"name": "Default",
|
||||
"site_id": "5ba29dd4e3c58f026e9d7c38",
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
async def test_flow_works(hass, aioclient_mock, mock_discovery):
|
||||
"""Test config flow."""
|
||||
|
@ -307,7 +316,12 @@ async def test_flow_fails_unknown_problem(hass, aioclient_mock):
|
|||
async def test_advanced_option_flow(hass):
|
||||
"""Test advanced config flow options."""
|
||||
controller = await setup_unifi_integration(
|
||||
hass, clients_response=CLIENTS, devices_response=DEVICES, wlans_response=WLANS
|
||||
hass,
|
||||
clients_response=CLIENTS,
|
||||
devices_response=DEVICES,
|
||||
wlans_response=WLANS,
|
||||
dpigroup_response=DPI_GROUPS,
|
||||
dpiapp_response=[],
|
||||
)
|
||||
|
||||
result = await hass.config_entries.options.async_init(
|
||||
|
@ -336,7 +350,11 @@ async def test_advanced_option_flow(hass):
|
|||
|
||||
result = await hass.config_entries.options.async_configure(
|
||||
result["flow_id"],
|
||||
user_input={CONF_BLOCK_CLIENT: [CLIENTS[0]["mac"]], CONF_POE_CLIENTS: False},
|
||||
user_input={
|
||||
CONF_BLOCK_CLIENT: [CLIENTS[0]["mac"]],
|
||||
CONF_POE_CLIENTS: False,
|
||||
CONF_DPI_RESTRICTIONS: False,
|
||||
},
|
||||
)
|
||||
|
||||
assert result["type"] == data_entry_flow.RESULT_TYPE_FORM
|
||||
|
@ -359,6 +377,7 @@ async def test_advanced_option_flow(hass):
|
|||
CONF_DETECTION_TIME: 100,
|
||||
CONF_IGNORE_WIRED_BUG: False,
|
||||
CONF_POE_CLIENTS: False,
|
||||
CONF_DPI_RESTRICTIONS: False,
|
||||
CONF_BLOCK_CLIENT: [CLIENTS[0]["mac"]],
|
||||
CONF_ALLOW_BANDWIDTH_SENSORS: True,
|
||||
CONF_ALLOW_UPTIME_SENSORS: True,
|
||||
|
@ -368,7 +387,11 @@ async def test_advanced_option_flow(hass):
|
|||
async def test_simple_option_flow(hass):
|
||||
"""Test simple config flow options."""
|
||||
controller = await setup_unifi_integration(
|
||||
hass, clients_response=CLIENTS, wlans_response=WLANS
|
||||
hass,
|
||||
clients_response=CLIENTS,
|
||||
wlans_response=WLANS,
|
||||
dpigroup_response=DPI_GROUPS,
|
||||
dpiapp_response=[],
|
||||
)
|
||||
|
||||
result = await hass.config_entries.options.async_init(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue