Source code for enhomie.philips.test.test_action
"""
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution
is permitted, for more information consult the project license file.
"""
from typing import TYPE_CHECKING
from ..action import PhueAction
from ..action import PhueActionItem
if TYPE_CHECKING:
from ...homie import HomieService
from ...utils import TestBodies
[docs]
def test_PhueAction_cover(
service: 'HomieService',
bodies: 'TestBodies',
) -> None:
"""
Perform various tests associated with relevant routines.
:param service: Ancilary Homie Automate class instance.
:param bodies: Locations and groups for use in testing.
"""
homie = service.homie
childs = homie.childs
origins = childs.origins
devices = childs.devices
groups = childs.groups
assert service.actions
actions = service.actions
threads = actions.threads
model = PhueActionItem
planets = bodies.planets
moons = dict(bodies.moons)
for planet in planets:
moon = moons[planet]
origin = origins[
f'{planet}_philips']
device = devices[
f'{planet}_light1']
group = groups[moon]
assert origin.refresh()
thread = threads[
f'{planet}_philips']
assert isinstance(
thread, PhueAction)
aitem = model(
origin, device)
thread.execute(aitem)
aitem.device = None
thread.execute(aitem)
aitem = model(
origin, group)
group.params.origin = None
thread.execute(aitem)