Source code for enhomie.ubiquiti.test.test_device
"""
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 encommon.types import lattrs
from ..device import UbiqDevice
if TYPE_CHECKING:
from ...homie import Homie
from ...utils import TestBodies
[docs]
def test_UbiqDevice(
homie: 'Homie',
bodies: 'TestBodies',
) -> None:
"""
Perform various tests associated with relevant routines.
:param homie: Primary class instance for Homie Automate.
:param bodies: Locations and groups for use in testing.
"""
childs = homie.childs
devices = childs.devices
planets = bodies.planets
family = 'ubiquiti'
for planet in planets:
name = f'{planet}_phone'
device = devices[name]
assert isinstance(
device, UbiqDevice)
attrs = lattrs(device)
assert attrs == [
'_HomieChild__homie',
'_HomieChild__name',
'_HomieChild__params']
device.validate()
assert device.homie
assert device.name == name
assert device.family == family
assert device.kind == 'device'
assert device.origin
assert device.params
assert not device.source
assert device.dumped
device.origin.refresh()
assert device.source