"""The tests for vacuum platforms.""" from typing import Any from homeassistant.components.vacuum import ( DOMAIN, StateVacuumEntity, VacuumActivity, VacuumEntityFeature, ) from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant from tests.common import MockEntity class MockVacuum(MockEntity, StateVacuumEntity): """Mock vacuum class.""" _attr_supported_features = ( VacuumEntityFeature.PAUSE | VacuumEntityFeature.STOP | VacuumEntityFeature.RETURN_HOME | VacuumEntityFeature.FAN_SPEED | VacuumEntityFeature.BATTERY | VacuumEntityFeature.CLEAN_SPOT | VacuumEntityFeature.MAP | VacuumEntityFeature.STATE | VacuumEntityFeature.START ) _attr_battery_level = 99 _attr_fan_speed_list = ["slow", "fast"] def __init__(self, **values: Any) -> None: """Initialize a mock vacuum entity.""" super().__init__(**values) self._attr_activity = VacuumActivity.DOCKED self._attr_fan_speed = "slow" def stop(self, **kwargs: Any) -> None: """Stop cleaning.""" self._attr_activity = VacuumActivity.IDLE def return_to_base(self, **kwargs: Any) -> None: """Return to base.""" self._attr_activity = VacuumActivity.RETURNING def clean_spot(self, **kwargs: Any) -> None: """Clean a spot.""" self._attr_activity = VacuumActivity.CLEANING def set_fan_speed(self, fan_speed: str, **kwargs: Any) -> None: """Set the fan speed.""" self._attr_fan_speed = fan_speed def start(self) -> None: """Start cleaning.""" self._attr_activity = VacuumActivity.CLEANING def pause(self) -> None: """Pause cleaning.""" self._attr_activity = VacuumActivity.PAUSED async def help_async_setup_entry_init( hass: HomeAssistant, config_entry: ConfigEntry ) -> bool: """Set up test config entry.""" await hass.config_entries.async_forward_entry_setups(config_entry, [DOMAIN]) return True async def help_async_unload_entry( hass: HomeAssistant, config_entry: ConfigEntry ) -> bool: """Unload test config emntry.""" return await hass.config_entries.async_unload_platforms( config_entry, [Platform.VACUUM] )