diff --git a/homeassistant/components/home_connect/coordinator.py b/homeassistant/components/home_connect/coordinator.py index 2c70d74150e..29bd961220e 100644 --- a/homeassistant/components/home_connect/coordinator.py +++ b/homeassistant/components/home_connect/coordinator.py @@ -25,7 +25,7 @@ from aiohomeconnect.model.error import ( HomeConnectError, HomeConnectRequestError, ) -from aiohomeconnect.model.program import EnumerateAvailableProgram +from aiohomeconnect.model.program import EnumerateProgram from propcache.api import cached_property from homeassistant.config_entries import ConfigEntry @@ -48,7 +48,7 @@ class HomeConnectApplianceData: events: dict[EventKey, Event] = field(default_factory=dict) info: HomeAppliance - programs: list[EnumerateAvailableProgram] = field(default_factory=list) + programs: list[EnumerateProgram] = field(default_factory=list) settings: dict[SettingKey, GetSetting] status: dict[StatusKey, Status] @@ -243,9 +243,7 @@ class HomeConnectCoordinator( ): try: appliance_data.programs.extend( - ( - await self.client.get_available_programs(appliance.ha_id) - ).programs + (await self.client.get_all_programs(appliance.ha_id)).programs ) except HomeConnectError as error: _LOGGER.debug( diff --git a/homeassistant/components/home_connect/switch.py b/homeassistant/components/home_connect/switch.py index c3a0858e0bb..521252ccc2f 100644 --- a/homeassistant/components/home_connect/switch.py +++ b/homeassistant/components/home_connect/switch.py @@ -5,7 +5,7 @@ from typing import Any, cast from aiohomeconnect.model import EventKey, ProgramKey, SettingKey from aiohomeconnect.model.error import HomeConnectError -from aiohomeconnect.model.program import EnumerateAvailableProgram +from aiohomeconnect.model.program import EnumerateProgram from homeassistant.components.automation import automations_with_entity from homeassistant.components.script import scripts_with_entity @@ -184,7 +184,7 @@ class HomeConnectProgramSwitch(HomeConnectEntity, SwitchEntity): self, coordinator: HomeConnectCoordinator, appliance: HomeConnectApplianceData, - program: EnumerateAvailableProgram, + program: EnumerateProgram, ) -> None: """Initialize the entity.""" desc = " ".join(["Program", program.key.split(".")[-1]]) diff --git a/tests/components/home_connect/conftest.py b/tests/components/home_connect/conftest.py index af039f04c03..ae98c69d242 100644 --- a/tests/components/home_connect/conftest.py +++ b/tests/components/home_connect/conftest.py @@ -9,9 +9,9 @@ from unittest.mock import AsyncMock, MagicMock, patch from aiohomeconnect.client import Client as HomeConnectClient from aiohomeconnect.model import ( - ArrayOfAvailablePrograms, ArrayOfEvents, ArrayOfHomeAppliances, + ArrayOfPrograms, ArrayOfSettings, ArrayOfStatus, Event, @@ -37,9 +37,7 @@ from tests.common import MockConfigEntry, load_json_object_fixture MOCK_APPLIANCES = ArrayOfHomeAppliances.from_dict( load_json_object_fixture("home_connect/appliances.json")["data"] ) -MOCK_PROGRAMS: dict[str, Any] = load_json_object_fixture( - "home_connect/programs-available.json" -) +MOCK_PROGRAMS: dict[str, Any] = load_json_object_fixture("home_connect/programs.json") MOCK_SETTINGS: dict[str, Any] = load_json_object_fixture("home_connect/settings.json") MOCK_STATUS = ArrayOfStatus.from_dict( load_json_object_fixture("home_connect/status.json")["data"] @@ -219,8 +217,8 @@ def _get_set_key_value_side_effect( return set_key_value_side_effect -async def _get_available_programs_side_effect(ha_id: str) -> ArrayOfAvailablePrograms: - """Get available programs.""" +async def _get_all_programs_side_effect(ha_id: str) -> ArrayOfPrograms: + """Get all programs.""" appliance_type = next( appliance for appliance in MOCK_APPLIANCES.homeappliances @@ -229,7 +227,7 @@ async def _get_available_programs_side_effect(ha_id: str) -> ArrayOfAvailablePro if appliance_type not in MOCK_PROGRAMS: raise HomeConnectApiError("error.key", "error description") - return ArrayOfAvailablePrograms.from_dict(MOCK_PROGRAMS[appliance_type]["data"]) + return ArrayOfPrograms.from_dict(MOCK_PROGRAMS[appliance_type]["data"]) async def _get_settings_side_effect(ha_id: str) -> ArrayOfSettings: @@ -290,9 +288,7 @@ def mock_client(request: pytest.FixtureRequest) -> MagicMock: ) mock.get_settings = AsyncMock(side_effect=_get_settings_side_effect) mock.get_status = AsyncMock(return_value=copy.deepcopy(MOCK_STATUS)) - mock.get_available_programs = AsyncMock( - side_effect=_get_available_programs_side_effect - ) + mock.get_all_programs = AsyncMock(side_effect=_get_all_programs_side_effect) mock.put_command = AsyncMock() mock.side_effect = mock @@ -323,7 +319,6 @@ def mock_client_with_exception(request: pytest.FixtureRequest) -> MagicMock: mock.start_program = AsyncMock(side_effect=exception) mock.stop_program = AsyncMock(side_effect=exception) - mock.get_available_programs = AsyncMock(side_effect=exception) mock.set_selected_program = AsyncMock(side_effect=exception) mock.set_active_program_option = AsyncMock(side_effect=exception) mock.set_selected_program_option = AsyncMock(side_effect=exception) @@ -331,7 +326,7 @@ def mock_client_with_exception(request: pytest.FixtureRequest) -> MagicMock: mock.get_settings = AsyncMock(side_effect=exception) mock.get_setting = AsyncMock(side_effect=exception) mock.get_status = AsyncMock(side_effect=exception) - mock.get_available_programs = AsyncMock(side_effect=exception) + mock.get_all_programs = AsyncMock(side_effect=exception) mock.put_command = AsyncMock(side_effect=exception) return mock diff --git a/tests/components/home_connect/fixtures/programs-available.json b/tests/components/home_connect/fixtures/programs.json similarity index 100% rename from tests/components/home_connect/fixtures/programs-available.json rename to tests/components/home_connect/fixtures/programs.json diff --git a/tests/components/home_connect/test_select.py b/tests/components/home_connect/test_select.py index 6ebd37266cd..a0cdd15bf31 100644 --- a/tests/components/home_connect/test_select.py +++ b/tests/components/home_connect/test_select.py @@ -4,8 +4,8 @@ from collections.abc import Awaitable, Callable from unittest.mock import MagicMock from aiohomeconnect.model import ( - ArrayOfAvailablePrograms, ArrayOfEvents, + ArrayOfPrograms, Event, EventKey, EventMessage, @@ -13,7 +13,7 @@ from aiohomeconnect.model import ( ProgramKey, ) from aiohomeconnect.model.error import HomeConnectError -from aiohomeconnect.model.program import EnumerateAvailableProgram +from aiohomeconnect.model.program import EnumerateProgram import pytest from homeassistant.components.select import ( @@ -61,14 +61,14 @@ async def test_filter_unknown_programs( entity_registry: er.EntityRegistry, ) -> None: """Test select that only known programs are shown.""" - client.get_available_programs.side_effect = None - client.get_available_programs.return_value = ArrayOfAvailablePrograms( + client.get_all_programs.side_effect = None + client.get_all_programs.return_value = ArrayOfPrograms( [ - EnumerateAvailableProgram( + EnumerateProgram( key=ProgramKey.DISHCARE_DISHWASHER_ECO_50, raw_key=ProgramKey.DISHCARE_DISHWASHER_ECO_50.value, ), - EnumerateAvailableProgram( + EnumerateProgram( key=ProgramKey.UNKNOWN, raw_key="an unknown program", ), @@ -202,16 +202,14 @@ async def test_select_exception_handling( client_with_exception: MagicMock, ) -> None: """Test exception handling.""" - client_with_exception.get_available_programs.side_effect = None - client_with_exception.get_available_programs.return_value = ( - ArrayOfAvailablePrograms( - [ - EnumerateAvailableProgram( - key=ProgramKey.DISHCARE_DISHWASHER_ECO_50, - raw_key=ProgramKey.DISHCARE_DISHWASHER_ECO_50.value, - ) - ] - ) + client_with_exception.get_all_programs.side_effect = None + client_with_exception.get_all_programs.return_value = ArrayOfPrograms( + [ + EnumerateProgram( + key=ProgramKey.DISHCARE_DISHWASHER_ECO_50, + raw_key=ProgramKey.DISHCARE_DISHWASHER_ECO_50.value, + ) + ] ) assert config_entry.state is ConfigEntryState.NOT_LOADED diff --git a/tests/components/home_connect/test_switch.py b/tests/components/home_connect/test_switch.py index 10d393423be..4d6b59eddd9 100644 --- a/tests/components/home_connect/test_switch.py +++ b/tests/components/home_connect/test_switch.py @@ -15,10 +15,7 @@ from aiohomeconnect.model import ( ) from aiohomeconnect.model.error import HomeConnectError from aiohomeconnect.model.event import ArrayOfEvents, EventType -from aiohomeconnect.model.program import ( - ArrayOfAvailablePrograms, - EnumerateAvailableProgram, -) +from aiohomeconnect.model.program import ArrayOfPrograms, EnumerateProgram from aiohomeconnect.model.setting import SettingConstraints import pytest @@ -250,16 +247,14 @@ async def test_switch_exception_handling( client_with_exception: MagicMock, ) -> None: """Test exception handling.""" - client_with_exception.get_available_programs.side_effect = None - client_with_exception.get_available_programs.return_value = ( - ArrayOfAvailablePrograms( - [ - EnumerateAvailableProgram( - key=ProgramKey.DISHCARE_DISHWASHER_ECO_50, - raw_key=ProgramKey.DISHCARE_DISHWASHER_ECO_50.value, - ) - ] - ) + client_with_exception.get_all_programs.side_effect = None + client_with_exception.get_all_programs.return_value = ArrayOfPrograms( + [ + EnumerateProgram( + key=ProgramKey.DISHCARE_DISHWASHER_ECO_50, + raw_key=ProgramKey.DISHCARE_DISHWASHER_ECO_50.value, + ) + ] ) client_with_exception.get_settings.side_effect = None client_with_exception.get_settings.return_value = ArrayOfSettings(