Files
core/tests/components/roomba/conftest.py
Lucas Mindêllo de Andrade b308a882fb Add Roomba J9 compatibility to the roomba integration (#145913)
Co-authored-by: Joostlek <joostlek@outlook.com>
2025-09-30 19:10:22 +02:00

63 lines
1.8 KiB
Python

"""Fixtures for the Roomba tests."""
from collections.abc import Generator
from unittest.mock import AsyncMock, patch
import pytest
from roombapy import Roomba
from homeassistant.components.roomba import CONF_BLID, CONF_CONTINUOUS, DOMAIN
from homeassistant.const import CONF_DELAY, CONF_HOST, CONF_PASSWORD
from tests.common import MockConfigEntry
@pytest.fixture
def mock_config_entry() -> MockConfigEntry:
"""Return the default mocked config entry."""
return MockConfigEntry(
domain=DOMAIN,
data={
CONF_HOST: "192.168.0.30",
CONF_BLID: "blid123",
CONF_PASSWORD: "pass123",
},
options={
CONF_CONTINUOUS: True,
CONF_DELAY: 10,
},
unique_id="blid123",
)
@pytest.fixture
def mock_roomba() -> Generator[AsyncMock]:
"""Build a fixture for the 17Track API."""
mock_roomba = AsyncMock(spec=Roomba, autospec=True)
mock_roomba.master_state = {
"state": {
"reported": {
"cap": {"pose": 1},
"cleanMissionStatus": {"cycle": "none", "phase": "charge"},
"pose": {"point": {"x": 1, "y": 2}, "theta": 90},
"dock": {"tankLvl": 99},
"hwPartsRev": {
"navSerialNo": "12345",
"wlan0HwAddr": "AA:BB:CC:DD:EE:FF",
},
"sku": "980",
"name": "Test Roomba",
"softwareVer": "3.2.1",
"hardwareRev": "1.0",
"bin": {"present": True, "full": False},
}
}
}
mock_roomba.roomba_connected = True
with patch(
"homeassistant.components.roomba.RoombaFactory.create_roomba",
return_value=mock_roomba,
):
yield mock_roomba