"""Tests de la base d'entité Arkteos.""" from __future__ import annotations from unittest.mock import Mock from custom_components.arkteos.entity import ArkteosEntity class FakeClient: def __init__(self, available: bool = False) -> None: self.available = available self.callbacks: list[object] = [] def add_availability_callback(self, callback) -> None: self.callbacks.append(callback) def remove_availability_callback(self, callback) -> None: self.callbacks.remove(callback) def test_base_entity_availability_reflects_client() -> None: assert ArkteosEntity(FakeClient(True)).available assert not ArkteosEntity(FakeClient(False)).available def test_availability_callback_writes_state() -> None: entity = ArkteosEntity(FakeClient()) entity.async_write_ha_state = Mock() entity._handle_availability(True) entity.async_write_ha_state.assert_called_once() def test_base_entity_has_no_polling_method() -> None: assert not hasattr(ArkteosEntity(FakeClient()), "async_update")