Source code for enhomie.homie.addons.test.test_logger
"""
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 threading import Thread
from typing import TYPE_CHECKING
from _pytest.logging import LogCaptureFixture
from encommon.types import inrepr
from encommon.types import instr
from encommon.types import lattrs
if TYPE_CHECKING:
from ...homie import Homie
[docs]
def test_HomieLogger(
homie: 'Homie',
) -> None:
"""
Perform various tests associated with relevant routines.
:param homie: Primary class instance for Homie Automate.
"""
logger = homie.logger
attrs = lattrs(logger)
assert attrs == [
'_HomieLogger__homie']
assert inrepr(
'logger.HomieLogger',
logger)
assert isinstance(
hash(logger), int)
assert instr(
'logger.HomieLogger',
logger)
[docs]
def test_HomieLogger_message(
homie: 'Homie',
caplog: LogCaptureFixture,
) -> None:
"""
Perform various tests associated with relevant routines.
:param homie: Primary class instance for Homie Automate.
:param caplog: pytest object for capturing log message.
"""
logger = homie.logger
logger.start()
logger.log_d(about='pytest')
logger.log_c(about='pytest')
logger.log_e(about='pytest')
logger.log_i(about='pytest')
logger.log_w(about='pytest')
logger.log(
level='debug',
about='pytest')
logger.stop()
output = caplog.record_tuples
assert len(output) == 6
logger.log_d(about='pytest')
logger.log_c(about='pytest')
logger.log_e(about='pytest')
logger.log_i(about='pytest')
logger.log_w(about='pytest')
output = caplog.record_tuples
assert len(output) == 6
[docs]
def test_HomieLogger_cover(
homie: 'Homie',
caplog: LogCaptureFixture,
) -> None:
"""
Perform various tests associated with relevant routines.
:param homie: Primary class instance for Homie Automate.
:param caplog: pytest object for capturing log message.
"""
logger = homie.logger
childs = homie.childs
devices = childs.devices
thread = Thread(name='foo')
device = devices[
'jupiter_light1']
logger.log_i(base=thread)
logger.log_i(item=thread)
logger.log_i(base=homie)
logger.log_i(item=homie)
logger.log_i(name=device)