Files
supervisor/tests/dbus/agent/boards/test_green.py
Mike Degatano 01a682cfaa Fix mypy issues in backups and dbus (#5792)
* Fix mypy issues in backups module

* Fix mypy issues in dbus module

* Fix mypy issues in api after rebase

* TypedDict to dataclass and other small fixes

* Finish fixing mypy errors in dbus

* local_where must exist

* Fix references to name in tests
2025-03-31 17:03:54 -04:00

80 lines
2.3 KiB
Python

"""Test Green board."""
from unittest.mock import patch
from dbus_fast.aio.message_bus import MessageBus
import pytest
from supervisor.dbus.agent.boards.green import Green
from tests.common import mock_dbus_services
from tests.dbus_service_mocks.agent_boards_green import Green as GreenService
@pytest.fixture(name="green_service", autouse=True)
async def fixture_green_service(dbus_session_bus: MessageBus) -> GreenService:
"""Mock Green Board dbus service."""
yield (await mock_dbus_services({"agent_boards_green": None}, dbus_session_bus))[
"agent_boards_green"
]
async def test_dbus_green(green_service: GreenService, dbus_session_bus: MessageBus):
"""Test Green board load."""
green = await Green().load_config()
await green.connect(dbus_session_bus)
assert green.board_name == "Green"
assert green.activity_led is True
assert green.power_led is True
assert green.user_led is True
with (
patch("supervisor.utils.common.Path.is_file", return_value=True),
patch(
"supervisor.utils.common.read_json_file",
return_value={"activity_led": False, "user_led": False},
),
):
green = await Green().load_config()
await green.connect(dbus_session_bus)
assert green.activity_led is False
assert green.user_led is False
async def test_dbus_green_set_activity_led(
green_service: GreenService, dbus_session_bus: MessageBus
):
"""Test setting activity led for Green board."""
green = await Green().load_config()
await green.connect(dbus_session_bus)
await green.set_activity_led(False)
await green_service.ping()
assert green.activity_led is False
async def test_dbus_green_set_power_led(
green_service: GreenService, dbus_session_bus: MessageBus
):
"""Test setting power led for Green board."""
green = await Green().load_config()
await green.connect(dbus_session_bus)
await green.set_power_led(False)
await green_service.ping()
assert green.power_led is False
async def test_dbus_green_set_user_led(
green_service: GreenService, dbus_session_bus: MessageBus
):
"""Test setting user led for Green board."""
green = await Green().load_config()
await green.connect(dbus_session_bus)
await green.set_user_led(False)
await green_service.ping()
assert green.user_led is False