diff --git a/homeassistant/components/roomba/__init__.py b/homeassistant/components/roomba/__init__.py index ae1fc05ad53..aa7c06d23a0 100644 --- a/homeassistant/components/roomba/__init__.py +++ b/homeassistant/components/roomba/__init__.py @@ -3,7 +3,7 @@ import asyncio import logging import async_timeout -from roombapy import Roomba, RoombaConnectionError +from roombapy import RoombaConnectionError, RoombaFactory from homeassistant import exceptions from homeassistant.const import ( @@ -40,7 +40,7 @@ async def async_setup_entry(hass, config_entry): }, ) - roomba = Roomba( + roomba = RoombaFactory.create_roomba( address=config_entry.data[CONF_HOST], blid=config_entry.data[CONF_BLID], password=config_entry.data[CONF_PASSWORD], diff --git a/homeassistant/components/roomba/config_flow.py b/homeassistant/components/roomba/config_flow.py index 11bd7fe2758..376447157c8 100644 --- a/homeassistant/components/roomba/config_flow.py +++ b/homeassistant/components/roomba/config_flow.py @@ -2,7 +2,7 @@ import asyncio -from roombapy import Roomba +from roombapy import RoombaFactory from roombapy.discovery import RoombaDiscovery from roombapy.getpassword import RoombaPassword import voluptuous as vol @@ -40,7 +40,7 @@ async def validate_input(hass: core.HomeAssistant, data): Data has the keys from DATA_SCHEMA with values provided by the user. """ - roomba = Roomba( + roomba = RoombaFactory.create_roomba( address=data[CONF_HOST], blid=data[CONF_BLID], password=data[CONF_PASSWORD], diff --git a/homeassistant/components/roomba/manifest.json b/homeassistant/components/roomba/manifest.json index ce17cf8c2c2..2aaa1f6762e 100644 --- a/homeassistant/components/roomba/manifest.json +++ b/homeassistant/components/roomba/manifest.json @@ -3,7 +3,7 @@ "name": "iRobot Roomba and Braava", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/roomba", - "requirements": ["roombapy==1.6.2"], + "requirements": ["roombapy==1.6.3"], "codeowners": ["@pschmitt", "@cyr-ius", "@shenxn"], "dhcp": [ { diff --git a/requirements_all.txt b/requirements_all.txt index 7b7f0df47a4..79d08c9c640 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1991,7 +1991,7 @@ rocketchat-API==0.6.1 rokuecp==0.8.1 # homeassistant.components.roomba -roombapy==1.6.2 +roombapy==1.6.3 # homeassistant.components.roon roonapi==0.0.32 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index b2bf0f938fc..eed3d3e666d 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1058,7 +1058,7 @@ ring_doorbell==0.6.2 rokuecp==0.8.1 # homeassistant.components.roomba -roombapy==1.6.2 +roombapy==1.6.3 # homeassistant.components.roon roonapi==0.0.32 diff --git a/tests/components/roomba/test_config_flow.py b/tests/components/roomba/test_config_flow.py index ffea0c3140c..32b3c1d95b3 100644 --- a/tests/components/roomba/test_config_flow.py +++ b/tests/components/roomba/test_config_flow.py @@ -2,8 +2,7 @@ from unittest.mock import MagicMock, PropertyMock, patch import pytest -from roombapy import RoombaConnectionError -from roombapy.roomba import RoombaInfo +from roombapy import RoombaConnectionError, RoombaInfo from homeassistant import config_entries, data_entry_flow, setup from homeassistant.components.dhcp import HOSTNAME, IP_ADDRESS, MAC_ADDRESS @@ -144,7 +143,7 @@ async def test_form_user_discovery_and_password_fetch(hass): assert result2["step_id"] == "link" with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.config_flow.RoombaPassword", @@ -260,7 +259,7 @@ async def test_form_user_discovery_manual_and_auto_password_fetch(hass): assert result3["errors"] is None with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.config_flow.RoombaPassword", @@ -359,7 +358,7 @@ async def test_form_user_discovery_manual_and_auto_password_fetch_but_cannot_con assert result3["errors"] is None with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.config_flow.RoombaPassword", @@ -410,7 +409,7 @@ async def test_form_user_discovery_no_devices_found_and_auto_password_fetch(hass assert result2["errors"] is None with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.config_flow.RoombaPassword", @@ -479,7 +478,7 @@ async def test_form_user_discovery_no_devices_found_and_password_fetch_fails(has await hass.async_block_till_done() with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.async_setup_entry", @@ -548,7 +547,7 @@ async def test_form_user_discovery_not_devices_found_and_password_fetch_fails_an await hass.async_block_till_done() with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.async_setup_entry", @@ -606,7 +605,7 @@ async def test_form_user_discovery_and_password_fetch_gets_connection_refused(ha await hass.async_block_till_done() with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.async_setup_entry", @@ -657,7 +656,7 @@ async def test_dhcp_discovery_and_roomba_discovery_finds(hass, discovery_data): assert result["description_placeholders"] == {"name": "robot_name"} with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.config_flow.RoombaPassword", @@ -727,7 +726,7 @@ async def test_dhcp_discovery_falls_back_to_manual(hass, discovery_data): assert result3["errors"] is None with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.config_flow.RoombaPassword", @@ -789,7 +788,7 @@ async def test_dhcp_discovery_no_devices_falls_back_to_manual(hass, discovery_da assert result2["errors"] is None with patch( - "homeassistant.components.roomba.config_flow.Roomba", + "homeassistant.components.roomba.config_flow.RoombaFactory.create_roomba", return_value=mocked_roomba, ), patch( "homeassistant.components.roomba.config_flow.RoombaPassword",