mirror of
https://github.com/home-assistant/core.git
synced 2026-08-28 18:24:50 -05:00
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: G Johansson <goran.johansson@shiftit.se>
89 lines
2.7 KiB
Python
89 lines
2.7 KiB
Python
"""Collection of helper methods and classes for cover tests."""
|
|
|
|
from typing import Any
|
|
|
|
from homeassistant.components.cover import CoverEntity, CoverEntityFeature, CoverState
|
|
|
|
from tests.common import MockEntity
|
|
|
|
|
|
class MockCover(MockEntity, CoverEntity):
|
|
"""Mock Cover class."""
|
|
|
|
def __init__(
|
|
self, reports_opening_closing: bool | None = None, **values: Any
|
|
) -> None:
|
|
"""Initialize a mock cover entity."""
|
|
|
|
super().__init__(**values)
|
|
self._reports_opening_closing = (
|
|
reports_opening_closing
|
|
if reports_opening_closing is not None
|
|
else CoverEntityFeature.STOP in self.supported_features
|
|
)
|
|
self.last_kwargs: dict[str, Any] | None = None
|
|
|
|
@property
|
|
def is_closed(self):
|
|
"""Return if the cover is closed or not."""
|
|
if "state" in self._values and self._values["state"] == CoverState.CLOSED:
|
|
return True
|
|
|
|
return self.current_cover_position == 0
|
|
|
|
@property
|
|
def is_opening(self):
|
|
"""Return if the cover is opening or not."""
|
|
if "state" in self._values:
|
|
return self._values["state"] == CoverState.OPENING
|
|
|
|
return False
|
|
|
|
@property
|
|
def is_closing(self):
|
|
"""Return if the cover is closing or not."""
|
|
if "state" in self._values:
|
|
return self._values["state"] == CoverState.CLOSING
|
|
|
|
return False
|
|
|
|
def open_cover(self, **kwargs) -> None:
|
|
"""Open cover."""
|
|
self.last_kwargs = kwargs
|
|
if self._reports_opening_closing:
|
|
self._values["state"] = CoverState.OPENING
|
|
else:
|
|
self._values["state"] = CoverState.OPEN
|
|
|
|
def close_cover(self, **kwargs) -> None:
|
|
"""Close cover."""
|
|
self.last_kwargs = kwargs
|
|
if self._reports_opening_closing:
|
|
self._values["state"] = CoverState.CLOSING
|
|
else:
|
|
self._values["state"] = CoverState.CLOSED
|
|
|
|
def set_cover_position(self, **kwargs) -> None:
|
|
"""Set cover position."""
|
|
self.last_kwargs = kwargs
|
|
|
|
def stop_cover(self, **kwargs) -> None:
|
|
"""Stop cover."""
|
|
assert CoverEntityFeature.STOP in self.supported_features
|
|
self._values["state"] = CoverState.CLOSED if self.is_closed else CoverState.OPEN
|
|
|
|
@property
|
|
def current_cover_position(self):
|
|
"""Return current position of cover."""
|
|
return self._handle("current_cover_position")
|
|
|
|
@property
|
|
def current_cover_tilt_position(self):
|
|
"""Return current position of cover tilt."""
|
|
return self._handle("current_cover_tilt_position")
|
|
|
|
@property
|
|
def supported_speeds(self):
|
|
"""Return supported speeds of cover."""
|
|
return self._handle("supported_speeds")
|