Get Litter-Robot to 100% code coverage and minor code cleanup (#58704)
This commit is contained in:
parent
bbbbcfbb93
commit
aacc009cbb
6 changed files with 35 additions and 18 deletions
|
@ -23,14 +23,14 @@ async def async_setup_entry(
|
|||
"""Set up Litter-Robot selects using config entry."""
|
||||
hub: LitterRobotHub = hass.data[DOMAIN][config_entry.entry_id]
|
||||
|
||||
entities = [
|
||||
LitterRobotSelect(
|
||||
robot=robot, entity_type=TYPE_CLEAN_CYCLE_WAIT_TIME_MINUTES, hub=hub
|
||||
)
|
||||
for robot in hub.account.robots
|
||||
]
|
||||
|
||||
async_add_entities(entities)
|
||||
async_add_entities(
|
||||
[
|
||||
LitterRobotSelect(
|
||||
robot=robot, entity_type=TYPE_CLEAN_CYCLE_WAIT_TIME_MINUTES, hub=hub
|
||||
)
|
||||
for robot in hub.account.robots
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
class LitterRobotSelect(LitterRobotControlEntity, SelectEntity):
|
||||
|
|
|
@ -98,4 +98,4 @@ async def async_setup_entry(
|
|||
)
|
||||
)
|
||||
|
||||
async_add_entities(entities, True)
|
||||
async_add_entities(entities)
|
||||
|
|
|
@ -76,4 +76,4 @@ async def async_setup_entry(
|
|||
for switch_class, switch_type in ROBOT_SWITCHES:
|
||||
entities.append(switch_class(robot=robot, entity_type=switch_type, hub=hub))
|
||||
|
||||
async_add_entities(entities, True)
|
||||
async_add_entities(entities)
|
||||
|
|
|
@ -17,7 +17,7 @@ from homeassistant.components.vacuum import (
|
|||
SUPPORT_STATUS,
|
||||
SUPPORT_TURN_OFF,
|
||||
SUPPORT_TURN_ON,
|
||||
StateVacuumEntity,
|
||||
VacuumEntity,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import STATE_OFF
|
||||
|
@ -47,13 +47,12 @@ async def async_setup_entry(
|
|||
"""Set up Litter-Robot cleaner using config entry."""
|
||||
hub: LitterRobotHub = hass.data[DOMAIN][entry.entry_id]
|
||||
|
||||
entities = []
|
||||
for robot in hub.account.robots:
|
||||
entities.append(
|
||||
async_add_entities(
|
||||
[
|
||||
LitterRobotCleaner(robot=robot, entity_type=TYPE_LITTER_BOX, hub=hub)
|
||||
)
|
||||
|
||||
async_add_entities(entities, True)
|
||||
for robot in hub.account.robots
|
||||
]
|
||||
)
|
||||
|
||||
platform = entity_platform.async_get_current_platform()
|
||||
platform.async_register_entity_service(
|
||||
|
@ -76,7 +75,7 @@ async def async_setup_entry(
|
|||
)
|
||||
|
||||
|
||||
class LitterRobotCleaner(LitterRobotControlEntity, StateVacuumEntity):
|
||||
class LitterRobotCleaner(LitterRobotControlEntity, VacuumEntity):
|
||||
"""Litter-Robot "Vacuum" Cleaner."""
|
||||
|
||||
@property
|
||||
|
|
|
@ -59,6 +59,12 @@ def mock_account_with_no_robots() -> MagicMock:
|
|||
return create_mock_account(skip_robots=True)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_account_with_sleeping_robot() -> MagicMock:
|
||||
"""Mock a Litter-Robot account with a sleeping robot."""
|
||||
return create_mock_account({"sleepModeActive": "102:00:00"})
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_account_with_error() -> MagicMock:
|
||||
"""Mock a Litter-Robot account with error."""
|
||||
|
|
|
@ -12,6 +12,7 @@ from homeassistant.components.litterrobot.vacuum import (
|
|||
SERVICE_SET_WAIT_TIME,
|
||||
)
|
||||
from homeassistant.components.vacuum import (
|
||||
ATTR_STATUS,
|
||||
DOMAIN as PLATFORM_DOMAIN,
|
||||
SERVICE_START,
|
||||
SERVICE_TURN_OFF,
|
||||
|
@ -46,6 +47,17 @@ async def test_vacuum(hass: HomeAssistant, mock_account):
|
|||
assert vacuum.attributes["is_sleeping"] is False
|
||||
|
||||
|
||||
async def test_vacuum_status_when_sleeping(
|
||||
hass: HomeAssistant, mock_account_with_sleeping_robot
|
||||
):
|
||||
"""Tests the vacuum status when sleeping."""
|
||||
await setup_integration(hass, mock_account_with_sleeping_robot, PLATFORM_DOMAIN)
|
||||
|
||||
vacuum = hass.states.get(VACUUM_ENTITY_ID)
|
||||
assert vacuum
|
||||
assert vacuum.attributes.get(ATTR_STATUS) == "Ready (Sleeping)"
|
||||
|
||||
|
||||
async def test_no_robots(hass: HomeAssistant, mock_account_with_no_robots):
|
||||
"""Tests the vacuum entity was set up."""
|
||||
await setup_integration(hass, mock_account_with_no_robots, PLATFORM_DOMAIN)
|
||||
|
|
Loading…
Add table
Reference in a new issue