"""Common test helpers for the text entity component tests.""" from typing import Any from homeassistant.components.text import RestoreText, TextEntity class MockTextEntity(TextEntity): """Mock text class.""" def __init__( self, native_value="test", native_min=None, native_max=None, pattern=None ) -> None: """Initialize mock text entity.""" self._attr_native_value = native_value if native_min is not None: self._attr_native_min = native_min if native_max is not None: self._attr_native_max = native_max if pattern is not None: self._attr_pattern = pattern def set_value(self, value: str) -> None: """Change the selected option.""" self._attr_native_value = value class MockRestoreText(MockTextEntity, RestoreText): """Mock RestoreText class.""" def __init__(self, name: str, **values: Any) -> None: """Initialize the MockRestoreText.""" super().__init__(**values) self._attr_name = name async def async_added_to_hass(self) -> None: """Restore native_*.""" await super().async_added_to_hass() if (last_text_data := await self.async_get_last_text_data()) is None: return self._attr_native_max = last_text_data.native_max self._attr_native_min = last_text_data.native_min self._attr_native_value = last_text_data.native_value