* Use set not list * Events are not entities * Don't await unload_events * Remove checks of entities content in tests * List to set comprehension * Why is it so hard to remember that sets arent parenthesis...
This commit is contained in:
parent
8895752837
commit
66a8edb11e
12 changed files with 20 additions and 67 deletions
|
@ -10,17 +10,10 @@ from .const import DOMAIN as DECONZ_DOMAIN
|
||||||
class DeconzBase:
|
class DeconzBase:
|
||||||
"""Common base for deconz entities and events."""
|
"""Common base for deconz entities and events."""
|
||||||
|
|
||||||
TYPE = ""
|
|
||||||
|
|
||||||
def __init__(self, device, gateway):
|
def __init__(self, device, gateway):
|
||||||
"""Set up device and add update callback to get data from websocket."""
|
"""Set up device and add update callback to get data from websocket."""
|
||||||
self._device = device
|
self._device = device
|
||||||
self.gateway = gateway
|
self.gateway = gateway
|
||||||
self.gateway.entities[self.TYPE].add(self.unique_id)
|
|
||||||
|
|
||||||
async def async_will_remove_from_hass(self) -> None:
|
|
||||||
"""Remove unique id."""
|
|
||||||
self.gateway.entities[self.TYPE].remove(self.unique_id)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def unique_id(self):
|
def unique_id(self):
|
||||||
|
@ -57,6 +50,13 @@ class DeconzBase:
|
||||||
class DeconzDevice(DeconzBase, Entity):
|
class DeconzDevice(DeconzBase, Entity):
|
||||||
"""Representation of a deCONZ device."""
|
"""Representation of a deCONZ device."""
|
||||||
|
|
||||||
|
TYPE = ""
|
||||||
|
|
||||||
|
def __init__(self, device, gateway):
|
||||||
|
"""Set up device and add update callback to get data from websocket."""
|
||||||
|
super().__init__(device, gateway)
|
||||||
|
self.gateway.entities[self.TYPE].add(self.unique_id)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def entity_registry_enabled_default(self):
|
def entity_registry_enabled_default(self):
|
||||||
"""Return if the entity should be enabled when first added to the entity registry.
|
"""Return if the entity should be enabled when first added to the entity registry.
|
||||||
|
@ -83,7 +83,7 @@ class DeconzDevice(DeconzBase, Entity):
|
||||||
self._device.remove_callback(self.async_update_callback)
|
self._device.remove_callback(self.async_update_callback)
|
||||||
if self.entity_id in self.gateway.deconz_ids:
|
if self.entity_id in self.gateway.deconz_ids:
|
||||||
del self.gateway.deconz_ids[self.entity_id]
|
del self.gateway.deconz_ids[self.entity_id]
|
||||||
await super().async_will_remove_from_hass()
|
self.gateway.entities[self.TYPE].remove(self.unique_id)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def async_update_callback(self, force_update=False, ignore_update=False):
|
def async_update_callback(self, force_update=False, ignore_update=False):
|
||||||
|
|
|
@ -11,12 +11,9 @@ from .deconz_device import DeconzBase
|
||||||
|
|
||||||
CONF_DECONZ_EVENT = "deconz_event"
|
CONF_DECONZ_EVENT = "deconz_event"
|
||||||
|
|
||||||
EVENT = "Event"
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_events(gateway) -> None:
|
async def async_setup_events(gateway) -> None:
|
||||||
"""Set up the deCONZ events."""
|
"""Set up the deCONZ events."""
|
||||||
gateway.entities[EVENT] = set()
|
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def async_add_sensor(sensors):
|
def async_add_sensor(sensors):
|
||||||
|
@ -26,10 +23,9 @@ async def async_setup_events(gateway) -> None:
|
||||||
if not gateway.option_allow_clip_sensor and sensor.type.startswith("CLIP"):
|
if not gateway.option_allow_clip_sensor and sensor.type.startswith("CLIP"):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if (
|
if sensor.type not in Switch.ZHATYPE or sensor.uniqueid in {
|
||||||
sensor.type not in Switch.ZHATYPE
|
event.unique_id for event in gateway.events
|
||||||
or sensor.uniqueid in gateway.entities[EVENT]
|
}:
|
||||||
):
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
new_event = DeconzEvent(sensor, gateway)
|
new_event = DeconzEvent(sensor, gateway)
|
||||||
|
@ -47,10 +43,11 @@ async def async_setup_events(gateway) -> None:
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def async_unload_events(gateway) -> None:
|
@callback
|
||||||
|
def async_unload_events(gateway) -> None:
|
||||||
"""Unload all deCONZ events."""
|
"""Unload all deCONZ events."""
|
||||||
for event in gateway.events:
|
for event in gateway.events:
|
||||||
await event.async_will_remove_from_hass()
|
event.async_will_remove_from_hass()
|
||||||
|
|
||||||
gateway.events.clear()
|
gateway.events.clear()
|
||||||
|
|
||||||
|
@ -62,8 +59,6 @@ class DeconzEvent(DeconzBase):
|
||||||
instead of a sensor entity in hass.
|
instead of a sensor entity in hass.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
TYPE = EVENT
|
|
||||||
|
|
||||||
def __init__(self, device, gateway):
|
def __init__(self, device, gateway):
|
||||||
"""Register callback that will be used for signals."""
|
"""Register callback that will be used for signals."""
|
||||||
super().__init__(device, gateway)
|
super().__init__(device, gateway)
|
||||||
|
@ -79,10 +74,10 @@ class DeconzEvent(DeconzBase):
|
||||||
"""Return Event device."""
|
"""Return Event device."""
|
||||||
return self._device
|
return self._device
|
||||||
|
|
||||||
async def async_will_remove_from_hass(self) -> None:
|
@callback
|
||||||
|
def async_will_remove_from_hass(self) -> None:
|
||||||
"""Disconnect event object when removed."""
|
"""Disconnect event object when removed."""
|
||||||
self._device.remove_callback(self.async_update_callback)
|
self._device.remove_callback(self.async_update_callback)
|
||||||
await super().async_will_remove_from_hass()
|
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def async_update_callback(self, force_update=False, ignore_update=False):
|
def async_update_callback(self, force_update=False, ignore_update=False):
|
||||||
|
|
|
@ -232,7 +232,7 @@ class DeconzGateway:
|
||||||
unsub_dispatcher()
|
unsub_dispatcher()
|
||||||
self.listeners = []
|
self.listeners = []
|
||||||
|
|
||||||
await async_unload_events(self)
|
async_unload_events(self)
|
||||||
|
|
||||||
self.deconz_ids = {}
|
self.deconz_ids = {}
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -75,7 +75,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
||||||
if not group.lights:
|
if not group.lights:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
known_groups = list(gateway.entities[DOMAIN])
|
known_groups = set(gateway.entities[DOMAIN])
|
||||||
new_group = DeconzGroup(group, gateway)
|
new_group = DeconzGroup(group, gateway)
|
||||||
if new_group.unique_id not in known_groups:
|
if new_group.unique_id not in known_groups:
|
||||||
entities.append(new_group)
|
entities.append(new_group)
|
||||||
|
|
|
@ -96,7 +96,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
||||||
if sensor.battery is not None:
|
if sensor.battery is not None:
|
||||||
battery_handler.remove_tracker(sensor)
|
battery_handler.remove_tracker(sensor)
|
||||||
|
|
||||||
known_batteries = list(gateway.entities[DOMAIN])
|
known_batteries = set(gateway.entities[DOMAIN])
|
||||||
new_battery = DeconzBattery(sensor, gateway)
|
new_battery = DeconzBattery(sensor, gateway)
|
||||||
if new_battery.unique_id not in known_batteries:
|
if new_battery.unique_id not in known_batteries:
|
||||||
entities.append(new_battery)
|
entities.append(new_battery)
|
||||||
|
|
|
@ -67,7 +67,6 @@ async def test_no_binary_sensors(hass):
|
||||||
"""Test that no sensors in deconz results in no sensor entities."""
|
"""Test that no sensors in deconz results in no sensor entities."""
|
||||||
gateway = await setup_deconz_integration(hass)
|
gateway = await setup_deconz_integration(hass)
|
||||||
assert len(gateway.deconz_ids) == 0
|
assert len(gateway.deconz_ids) == 0
|
||||||
assert len(gateway.entities[binary_sensor.DOMAIN]) == 0
|
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,7 +80,6 @@ async def test_binary_sensors(hass):
|
||||||
assert "binary_sensor.clip_presence_sensor" not in gateway.deconz_ids
|
assert "binary_sensor.clip_presence_sensor" not in gateway.deconz_ids
|
||||||
assert "binary_sensor.vibration_sensor" in gateway.deconz_ids
|
assert "binary_sensor.vibration_sensor" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 3
|
assert len(hass.states.async_all()) == 3
|
||||||
assert len(gateway.entities[binary_sensor.DOMAIN]) == 2
|
|
||||||
|
|
||||||
presence_sensor = hass.states.get("binary_sensor.presence_sensor")
|
presence_sensor = hass.states.get("binary_sensor.presence_sensor")
|
||||||
assert presence_sensor.state == "off"
|
assert presence_sensor.state == "off"
|
||||||
|
@ -113,7 +111,6 @@ async def test_binary_sensors(hass):
|
||||||
await gateway.async_reset()
|
await gateway.async_reset()
|
||||||
|
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.entities[binary_sensor.DOMAIN]) == 0
|
|
||||||
|
|
||||||
|
|
||||||
async def test_allow_clip_sensor(hass):
|
async def test_allow_clip_sensor(hass):
|
||||||
|
@ -130,7 +127,6 @@ async def test_allow_clip_sensor(hass):
|
||||||
assert "binary_sensor.clip_presence_sensor" in gateway.deconz_ids
|
assert "binary_sensor.clip_presence_sensor" in gateway.deconz_ids
|
||||||
assert "binary_sensor.vibration_sensor" in gateway.deconz_ids
|
assert "binary_sensor.vibration_sensor" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 4
|
assert len(hass.states.async_all()) == 4
|
||||||
assert len(gateway.entities[binary_sensor.DOMAIN]) == 3
|
|
||||||
|
|
||||||
presence_sensor = hass.states.get("binary_sensor.presence_sensor")
|
presence_sensor = hass.states.get("binary_sensor.presence_sensor")
|
||||||
assert presence_sensor.state == "off"
|
assert presence_sensor.state == "off"
|
||||||
|
@ -154,7 +150,6 @@ async def test_allow_clip_sensor(hass):
|
||||||
assert "binary_sensor.clip_presence_sensor" not in gateway.deconz_ids
|
assert "binary_sensor.clip_presence_sensor" not in gateway.deconz_ids
|
||||||
assert "binary_sensor.vibration_sensor" in gateway.deconz_ids
|
assert "binary_sensor.vibration_sensor" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 3
|
assert len(hass.states.async_all()) == 3
|
||||||
assert len(gateway.entities[binary_sensor.DOMAIN]) == 2
|
|
||||||
|
|
||||||
hass.config_entries.async_update_entry(
|
hass.config_entries.async_update_entry(
|
||||||
gateway.config_entry, options={deconz.gateway.CONF_ALLOW_CLIP_SENSOR: True}
|
gateway.config_entry, options={deconz.gateway.CONF_ALLOW_CLIP_SENSOR: True}
|
||||||
|
@ -166,14 +161,12 @@ async def test_allow_clip_sensor(hass):
|
||||||
assert "binary_sensor.clip_presence_sensor" in gateway.deconz_ids
|
assert "binary_sensor.clip_presence_sensor" in gateway.deconz_ids
|
||||||
assert "binary_sensor.vibration_sensor" in gateway.deconz_ids
|
assert "binary_sensor.vibration_sensor" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 4
|
assert len(hass.states.async_all()) == 4
|
||||||
assert len(gateway.entities[binary_sensor.DOMAIN]) == 3
|
|
||||||
|
|
||||||
|
|
||||||
async def test_add_new_binary_sensor(hass):
|
async def test_add_new_binary_sensor(hass):
|
||||||
"""Test that adding a new binary sensor works."""
|
"""Test that adding a new binary sensor works."""
|
||||||
gateway = await setup_deconz_integration(hass)
|
gateway = await setup_deconz_integration(hass)
|
||||||
assert len(gateway.deconz_ids) == 0
|
assert len(gateway.deconz_ids) == 0
|
||||||
assert len(gateway.entities[binary_sensor.DOMAIN]) == 0
|
|
||||||
|
|
||||||
state_added_event = {
|
state_added_event = {
|
||||||
"t": "event",
|
"t": "event",
|
||||||
|
@ -189,4 +182,3 @@ async def test_add_new_binary_sensor(hass):
|
||||||
|
|
||||||
presence_sensor = hass.states.get("binary_sensor.presence_sensor")
|
presence_sensor = hass.states.get("binary_sensor.presence_sensor")
|
||||||
assert presence_sensor.state == "off"
|
assert presence_sensor.state == "off"
|
||||||
assert len(gateway.entities[binary_sensor.DOMAIN]) == 1
|
|
||||||
|
|
|
@ -59,7 +59,6 @@ async def test_no_sensors(hass):
|
||||||
gateway = await setup_deconz_integration(hass)
|
gateway = await setup_deconz_integration(hass)
|
||||||
assert len(gateway.deconz_ids) == 0
|
assert len(gateway.deconz_ids) == 0
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.entities[climate.DOMAIN]) == 0
|
|
||||||
|
|
||||||
|
|
||||||
async def test_climate_devices(hass):
|
async def test_climate_devices(hass):
|
||||||
|
@ -73,7 +72,6 @@ async def test_climate_devices(hass):
|
||||||
assert "climate.presence_sensor" not in gateway.deconz_ids
|
assert "climate.presence_sensor" not in gateway.deconz_ids
|
||||||
assert "climate.clip_thermostat" not in gateway.deconz_ids
|
assert "climate.clip_thermostat" not in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 3
|
assert len(hass.states.async_all()) == 3
|
||||||
assert len(gateway.entities[climate.DOMAIN]) == 1
|
|
||||||
|
|
||||||
thermostat = hass.states.get("climate.thermostat")
|
thermostat = hass.states.get("climate.thermostat")
|
||||||
assert thermostat.state == "auto"
|
assert thermostat.state == "auto"
|
||||||
|
@ -183,7 +181,6 @@ async def test_climate_devices(hass):
|
||||||
await gateway.async_reset()
|
await gateway.async_reset()
|
||||||
|
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.entities[climate.DOMAIN]) == 0
|
|
||||||
|
|
||||||
|
|
||||||
async def test_clip_climate_device(hass):
|
async def test_clip_climate_device(hass):
|
||||||
|
@ -201,7 +198,6 @@ async def test_clip_climate_device(hass):
|
||||||
assert "climate.presence_sensor" not in gateway.deconz_ids
|
assert "climate.presence_sensor" not in gateway.deconz_ids
|
||||||
assert "climate.clip_thermostat" in gateway.deconz_ids
|
assert "climate.clip_thermostat" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 4
|
assert len(hass.states.async_all()) == 4
|
||||||
assert len(gateway.entities[climate.DOMAIN]) == 2
|
|
||||||
|
|
||||||
thermostat = hass.states.get("climate.thermostat")
|
thermostat = hass.states.get("climate.thermostat")
|
||||||
assert thermostat.state == "auto"
|
assert thermostat.state == "auto"
|
||||||
|
@ -229,7 +225,6 @@ async def test_clip_climate_device(hass):
|
||||||
assert "climate.presence_sensor" not in gateway.deconz_ids
|
assert "climate.presence_sensor" not in gateway.deconz_ids
|
||||||
assert "climate.clip_thermostat" not in gateway.deconz_ids
|
assert "climate.clip_thermostat" not in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 3
|
assert len(hass.states.async_all()) == 3
|
||||||
assert len(gateway.entities[climate.DOMAIN]) == 1
|
|
||||||
|
|
||||||
hass.config_entries.async_update_entry(
|
hass.config_entries.async_update_entry(
|
||||||
gateway.config_entry, options={deconz.gateway.CONF_ALLOW_CLIP_SENSOR: True}
|
gateway.config_entry, options={deconz.gateway.CONF_ALLOW_CLIP_SENSOR: True}
|
||||||
|
@ -242,7 +237,6 @@ async def test_clip_climate_device(hass):
|
||||||
assert "climate.presence_sensor" not in gateway.deconz_ids
|
assert "climate.presence_sensor" not in gateway.deconz_ids
|
||||||
assert "climate.clip_thermostat" in gateway.deconz_ids
|
assert "climate.clip_thermostat" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 4
|
assert len(hass.states.async_all()) == 4
|
||||||
assert len(gateway.entities[climate.DOMAIN]) == 2
|
|
||||||
|
|
||||||
|
|
||||||
async def test_verify_state_update(hass):
|
async def test_verify_state_update(hass):
|
||||||
|
@ -274,7 +268,6 @@ async def test_add_new_climate_device(hass):
|
||||||
"""Test that adding a new climate device works."""
|
"""Test that adding a new climate device works."""
|
||||||
gateway = await setup_deconz_integration(hass)
|
gateway = await setup_deconz_integration(hass)
|
||||||
assert len(gateway.deconz_ids) == 0
|
assert len(gateway.deconz_ids) == 0
|
||||||
assert len(gateway.entities[climate.DOMAIN]) == 0
|
|
||||||
|
|
||||||
state_added_event = {
|
state_added_event = {
|
||||||
"t": "event",
|
"t": "event",
|
||||||
|
@ -290,4 +283,3 @@ async def test_add_new_climate_device(hass):
|
||||||
|
|
||||||
thermostat = hass.states.get("climate.thermostat")
|
thermostat = hass.states.get("climate.thermostat")
|
||||||
assert thermostat.state == "auto"
|
assert thermostat.state == "auto"
|
||||||
assert len(gateway.entities[climate.DOMAIN]) == 1
|
|
||||||
|
|
|
@ -67,7 +67,6 @@ async def test_no_covers(hass):
|
||||||
"""Test that no cover entities are created."""
|
"""Test that no cover entities are created."""
|
||||||
gateway = await setup_deconz_integration(hass)
|
gateway = await setup_deconz_integration(hass)
|
||||||
assert len(gateway.deconz_ids) == 0
|
assert len(gateway.deconz_ids) == 0
|
||||||
assert len(gateway.entities[cover.DOMAIN]) == 0
|
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,7 +81,6 @@ async def test_cover(hass):
|
||||||
assert "cover.deconz_old_brightness_cover" in gateway.deconz_ids
|
assert "cover.deconz_old_brightness_cover" in gateway.deconz_ids
|
||||||
assert "cover.window_covering_controller" in gateway.deconz_ids
|
assert "cover.window_covering_controller" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 5
|
assert len(hass.states.async_all()) == 5
|
||||||
assert len(gateway.entities[cover.DOMAIN]) == 4
|
|
||||||
|
|
||||||
level_controllable_cover = hass.states.get("cover.level_controllable_cover")
|
level_controllable_cover = hass.states.get("cover.level_controllable_cover")
|
||||||
assert level_controllable_cover.state == "open"
|
assert level_controllable_cover.state == "open"
|
||||||
|
@ -160,4 +158,3 @@ async def test_cover(hass):
|
||||||
await gateway.async_reset()
|
await gateway.async_reset()
|
||||||
|
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.entities[cover.DOMAIN]) == 0
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
"""Test deCONZ remote events."""
|
"""Test deCONZ remote events."""
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
|
||||||
from homeassistant.components.deconz.deconz_event import CONF_DECONZ_EVENT, EVENT
|
from homeassistant.components.deconz.deconz_event import CONF_DECONZ_EVENT
|
||||||
|
|
||||||
from .test_gateway import DECONZ_WEB_REQUEST, setup_deconz_integration
|
from .test_gateway import DECONZ_WEB_REQUEST, setup_deconz_integration
|
||||||
|
|
||||||
|
@ -62,7 +62,6 @@ async def test_deconz_events(hass):
|
||||||
assert "sensor.switch_2_battery_level" in gateway.deconz_ids
|
assert "sensor.switch_2_battery_level" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 3
|
assert len(hass.states.async_all()) == 3
|
||||||
assert len(gateway.events) == 5
|
assert len(gateway.events) == 5
|
||||||
assert len(gateway.entities[EVENT]) == 5
|
|
||||||
|
|
||||||
switch_1 = hass.states.get("sensor.switch_1")
|
switch_1 = hass.states.get("sensor.switch_1")
|
||||||
assert switch_1 is None
|
assert switch_1 is None
|
||||||
|
@ -128,4 +127,3 @@ async def test_deconz_events(hass):
|
||||||
|
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.events) == 0
|
assert len(gateway.events) == 0
|
||||||
assert len(gateway.entities[EVENT]) == 0
|
|
||||||
|
|
|
@ -95,7 +95,6 @@ async def test_no_lights_or_groups(hass):
|
||||||
gateway = await setup_deconz_integration(hass)
|
gateway = await setup_deconz_integration(hass)
|
||||||
assert len(gateway.deconz_ids) == 0
|
assert len(gateway.deconz_ids) == 0
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.entities[light.DOMAIN]) == 0
|
|
||||||
|
|
||||||
|
|
||||||
async def test_lights_and_groups(hass):
|
async def test_lights_and_groups(hass):
|
||||||
|
@ -112,7 +111,6 @@ async def test_lights_and_groups(hass):
|
||||||
assert "light.on_off_light" in gateway.deconz_ids
|
assert "light.on_off_light" in gateway.deconz_ids
|
||||||
|
|
||||||
assert len(hass.states.async_all()) == 6
|
assert len(hass.states.async_all()) == 6
|
||||||
assert len(gateway.entities[light.DOMAIN]) == 5
|
|
||||||
|
|
||||||
rgb_light = hass.states.get("light.rgb_light")
|
rgb_light = hass.states.get("light.rgb_light")
|
||||||
assert rgb_light.state == "on"
|
assert rgb_light.state == "on"
|
||||||
|
@ -258,7 +256,6 @@ async def test_lights_and_groups(hass):
|
||||||
await gateway.async_reset()
|
await gateway.async_reset()
|
||||||
|
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.entities[light.DOMAIN]) == 0
|
|
||||||
|
|
||||||
|
|
||||||
async def test_disable_light_groups(hass):
|
async def test_disable_light_groups(hass):
|
||||||
|
@ -278,7 +275,6 @@ async def test_disable_light_groups(hass):
|
||||||
assert "light.on_off_switch" not in gateway.deconz_ids
|
assert "light.on_off_switch" not in gateway.deconz_ids
|
||||||
# 3 entities
|
# 3 entities
|
||||||
assert len(hass.states.async_all()) == 5
|
assert len(hass.states.async_all()) == 5
|
||||||
assert len(gateway.entities[light.DOMAIN]) == 4
|
|
||||||
|
|
||||||
rgb_light = hass.states.get("light.rgb_light")
|
rgb_light = hass.states.get("light.rgb_light")
|
||||||
assert rgb_light is not None
|
assert rgb_light is not None
|
||||||
|
@ -304,7 +300,6 @@ async def test_disable_light_groups(hass):
|
||||||
assert "light.on_off_switch" not in gateway.deconz_ids
|
assert "light.on_off_switch" not in gateway.deconz_ids
|
||||||
# 3 entities
|
# 3 entities
|
||||||
assert len(hass.states.async_all()) == 6
|
assert len(hass.states.async_all()) == 6
|
||||||
assert len(gateway.entities[light.DOMAIN]) == 5
|
|
||||||
|
|
||||||
hass.config_entries.async_update_entry(
|
hass.config_entries.async_update_entry(
|
||||||
gateway.config_entry, options={deconz.gateway.CONF_ALLOW_DECONZ_GROUPS: False}
|
gateway.config_entry, options={deconz.gateway.CONF_ALLOW_DECONZ_GROUPS: False}
|
||||||
|
@ -318,4 +313,3 @@ async def test_disable_light_groups(hass):
|
||||||
assert "light.on_off_switch" not in gateway.deconz_ids
|
assert "light.on_off_switch" not in gateway.deconz_ids
|
||||||
# 3 entities
|
# 3 entities
|
||||||
assert len(hass.states.async_all()) == 5
|
assert len(hass.states.async_all()) == 5
|
||||||
assert len(gateway.entities[light.DOMAIN]) == 4
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
|
||||||
from homeassistant.components import deconz
|
from homeassistant.components import deconz
|
||||||
from homeassistant.components.deconz.deconz_event import EVENT
|
|
||||||
import homeassistant.components.sensor as sensor
|
import homeassistant.components.sensor as sensor
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
DEVICE_CLASS_BATTERY,
|
DEVICE_CLASS_BATTERY,
|
||||||
|
@ -97,7 +96,6 @@ async def test_no_sensors(hass):
|
||||||
gateway = await setup_deconz_integration(hass)
|
gateway = await setup_deconz_integration(hass)
|
||||||
assert len(gateway.deconz_ids) == 0
|
assert len(gateway.deconz_ids) == 0
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.entities[sensor.DOMAIN]) == 0
|
|
||||||
|
|
||||||
|
|
||||||
async def test_sensors(hass):
|
async def test_sensors(hass):
|
||||||
|
@ -116,7 +114,6 @@ async def test_sensors(hass):
|
||||||
assert "sensor.consumption_sensor" in gateway.deconz_ids
|
assert "sensor.consumption_sensor" in gateway.deconz_ids
|
||||||
assert "sensor.clip_light_level_sensor" not in gateway.deconz_ids
|
assert "sensor.clip_light_level_sensor" not in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 5
|
assert len(hass.states.async_all()) == 5
|
||||||
assert len(gateway.entities[sensor.DOMAIN]) == 5
|
|
||||||
|
|
||||||
light_level_sensor = hass.states.get("sensor.light_level_sensor")
|
light_level_sensor = hass.states.get("sensor.light_level_sensor")
|
||||||
assert light_level_sensor.state == "999.8"
|
assert light_level_sensor.state == "999.8"
|
||||||
|
@ -177,8 +174,6 @@ async def test_sensors(hass):
|
||||||
await gateway.async_reset()
|
await gateway.async_reset()
|
||||||
|
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
# Daylight sensor from deCONZ is added to set but is disabled by default
|
|
||||||
assert len(gateway.entities[sensor.DOMAIN]) == 1
|
|
||||||
|
|
||||||
|
|
||||||
async def test_allow_clip_sensors(hass):
|
async def test_allow_clip_sensors(hass):
|
||||||
|
@ -201,7 +196,6 @@ async def test_allow_clip_sensors(hass):
|
||||||
assert "sensor.consumption_sensor" in gateway.deconz_ids
|
assert "sensor.consumption_sensor" in gateway.deconz_ids
|
||||||
assert "sensor.clip_light_level_sensor" in gateway.deconz_ids
|
assert "sensor.clip_light_level_sensor" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 6
|
assert len(hass.states.async_all()) == 6
|
||||||
assert len(gateway.entities[sensor.DOMAIN]) == 6
|
|
||||||
|
|
||||||
light_level_sensor = hass.states.get("sensor.light_level_sensor")
|
light_level_sensor = hass.states.get("sensor.light_level_sensor")
|
||||||
assert light_level_sensor.state == "999.8"
|
assert light_level_sensor.state == "999.8"
|
||||||
|
@ -249,7 +243,6 @@ async def test_allow_clip_sensors(hass):
|
||||||
assert "sensor.consumption_sensor" in gateway.deconz_ids
|
assert "sensor.consumption_sensor" in gateway.deconz_ids
|
||||||
assert "sensor.clip_light_level_sensor" not in gateway.deconz_ids
|
assert "sensor.clip_light_level_sensor" not in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 5
|
assert len(hass.states.async_all()) == 5
|
||||||
assert len(gateway.entities[sensor.DOMAIN]) == 5
|
|
||||||
|
|
||||||
hass.config_entries.async_update_entry(
|
hass.config_entries.async_update_entry(
|
||||||
gateway.config_entry, options={deconz.gateway.CONF_ALLOW_CLIP_SENSOR: True}
|
gateway.config_entry, options={deconz.gateway.CONF_ALLOW_CLIP_SENSOR: True}
|
||||||
|
@ -267,7 +260,6 @@ async def test_allow_clip_sensors(hass):
|
||||||
assert "sensor.consumption_sensor" in gateway.deconz_ids
|
assert "sensor.consumption_sensor" in gateway.deconz_ids
|
||||||
assert "sensor.clip_light_level_sensor" in gateway.deconz_ids
|
assert "sensor.clip_light_level_sensor" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 6
|
assert len(hass.states.async_all()) == 6
|
||||||
assert len(gateway.entities[sensor.DOMAIN]) == 6
|
|
||||||
|
|
||||||
|
|
||||||
async def test_add_new_sensor(hass):
|
async def test_add_new_sensor(hass):
|
||||||
|
@ -300,8 +292,6 @@ async def test_add_battery_later(hass):
|
||||||
assert len(gateway.deconz_ids) == 0
|
assert len(gateway.deconz_ids) == 0
|
||||||
assert len(gateway.events) == 1
|
assert len(gateway.events) == 1
|
||||||
assert len(remote._callbacks) == 2
|
assert len(remote._callbacks) == 2
|
||||||
assert len(gateway.entities[sensor.DOMAIN]) == 0
|
|
||||||
assert len(gateway.entities[EVENT]) == 1
|
|
||||||
|
|
||||||
remote.update({"config": {"battery": 50}})
|
remote.update({"config": {"battery": 50}})
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
@ -312,5 +302,3 @@ async def test_add_battery_later(hass):
|
||||||
|
|
||||||
battery_sensor = hass.states.get("sensor.switch_1_battery_level")
|
battery_sensor = hass.states.get("sensor.switch_1_battery_level")
|
||||||
assert battery_sensor is not None
|
assert battery_sensor is not None
|
||||||
assert len(gateway.entities[sensor.DOMAIN]) == 1
|
|
||||||
assert len(gateway.entities[EVENT]) == 1
|
|
||||||
|
|
|
@ -64,7 +64,6 @@ async def test_no_switches(hass):
|
||||||
gateway = await setup_deconz_integration(hass)
|
gateway = await setup_deconz_integration(hass)
|
||||||
assert len(gateway.deconz_ids) == 0
|
assert len(gateway.deconz_ids) == 0
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.entities[switch.DOMAIN]) == 0
|
|
||||||
|
|
||||||
|
|
||||||
async def test_switches(hass):
|
async def test_switches(hass):
|
||||||
|
@ -78,7 +77,6 @@ async def test_switches(hass):
|
||||||
assert "switch.unsupported_switch" not in gateway.deconz_ids
|
assert "switch.unsupported_switch" not in gateway.deconz_ids
|
||||||
assert "switch.on_off_relay" in gateway.deconz_ids
|
assert "switch.on_off_relay" in gateway.deconz_ids
|
||||||
assert len(hass.states.async_all()) == 5
|
assert len(hass.states.async_all()) == 5
|
||||||
assert len(gateway.entities[switch.DOMAIN]) == 4
|
|
||||||
|
|
||||||
on_off_switch = hass.states.get("switch.on_off_switch")
|
on_off_switch = hass.states.get("switch.on_off_switch")
|
||||||
assert on_off_switch.state == "on"
|
assert on_off_switch.state == "on"
|
||||||
|
@ -175,4 +173,3 @@ async def test_switches(hass):
|
||||||
await gateway.async_reset()
|
await gateway.async_reset()
|
||||||
|
|
||||||
assert len(hass.states.async_all()) == 0
|
assert len(hass.states.async_all()) == 0
|
||||||
assert len(gateway.entities[switch.DOMAIN]) == 0
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue