Files
esphome/tests/component_tests/safe_mode/test_safe_mode.py
T

46 lines
1.4 KiB
Python

"""Tests for the safe_mode component."""
from collections.abc import Callable
from esphome.core import CORE
SHUTDOWN_DEFINE = "USE_SAFE_MODE_BOOT_IS_GOOD_ON_SHUTDOWN"
def _has_define(name: str) -> bool:
return any(define.name == name for define in CORE.defines)
def test_boot_is_good_on_shutdown_default(
generate_main: Callable[[str], str],
) -> None:
"""By default, an orderly shutdown confirms the app image."""
main_cpp = generate_main(
"tests/component_tests/safe_mode/test_safe_mode_default.yaml"
)
assert "safe_mode::SafeModeComponent" in main_cpp
assert _has_define(SHUTDOWN_DEFINE)
def test_boot_is_good_on_shutdown_disabled(
generate_main: Callable[[str], str],
) -> None:
"""With boot_is_good_on_shutdown: false, the define is not added."""
main_cpp = generate_main(
"tests/component_tests/safe_mode/test_safe_mode_no_shutdown_confirm.yaml"
)
assert "safe_mode::SafeModeComponent" in main_cpp
assert not _has_define(SHUTDOWN_DEFINE)
def test_safe_mode_disabled(generate_main: Callable[[str], str]) -> None:
"""With safe_mode disabled, no component and no define are generated."""
main_cpp = generate_main(
"tests/component_tests/safe_mode/test_safe_mode_disabled.yaml"
)
assert "safe_mode::SafeModeComponent" not in main_cpp
assert not _has_define(SHUTDOWN_DEFINE)