diff --git a/custom_components/versatile_thermostat/base_thermostat.py b/custom_components/versatile_thermostat/base_thermostat.py index a059b43..225d6e2 100644 --- a/custom_components/versatile_thermostat/base_thermostat.py +++ b/custom_components/versatile_thermostat/base_thermostat.py @@ -2719,3 +2719,6 @@ class BaseThermostat(ClimateEntity, RestoreEntity): ) else: _LOGGER.debug("No preset_modes") + + if self._motion_on: + self._attr_preset_modes.append(PRESET_ACTIVITY) diff --git a/tests/test_auto_fan_mode.py b/tests/test_auto_fan_mode.py index 1ee6857..768ed33 100644 --- a/tests/test_auto_fan_mode.py +++ b/tests/test_auto_fan_mode.py @@ -211,13 +211,14 @@ async def test_over_climate_auto_fan_mode_turbo_activation( "custom_components.versatile_thermostat.underlyings.UnderlyingClimate.find_underlying_climate", return_value=fake_underlying_climate, ): - entry.add_to_hass(hass) - await hass.config_entries.async_setup(entry.entry_id) - assert entry.state is ConfigEntryState.LOADED - - entity: ThermostatOverClimate = search_entity( - hass, "climate.theoverclimatemockname", "climate" - ) + entity = await create_thermostat(hass, entry, "climate.theoverclimatemockname") + # entry.add_to_hass(hass) + # await hass.config_entries.async_setup(entry.entry_id) + # assert entry.state is ConfigEntryState.LOADED + # + # entity: ThermostatOverClimate = search_entity( + # hass, "climate.theoverclimatemockname", "climate" + # ) assert entity assert isinstance(entity, ThermostatOverClimate) diff --git a/tests/test_auto_regulation.py b/tests/test_auto_regulation.py index 7559c68..930faa7 100644 --- a/tests/test_auto_regulation.py +++ b/tests/test_auto_regulation.py @@ -52,18 +52,19 @@ async def test_over_climate_regulation( "custom_components.versatile_thermostat.underlyings.UnderlyingClimate.find_underlying_climate", return_value=fake_underlying_climate, ): - entry.add_to_hass(hass) - await hass.config_entries.async_setup(entry.entry_id) - assert entry.state is ConfigEntryState.LOADED - - def find_my_entity(entity_id) -> ClimateEntity: - """Find my new entity""" - component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] - for entity in component.entities: - if entity.entity_id == entity_id: - return entity - - entity: ThermostatOverClimate = find_my_entity("climate.theoverclimatemockname") + entity = await create_thermostat(hass, entry, "climate.theoverclimatemockname") + # entry.add_to_hass(hass) + # await hass.config_entries.async_setup(entry.entry_id) + # assert entry.state is ConfigEntryState.LOADED + # + # def find_my_entity(entity_id) -> ClimateEntity: + # """Find my new entity""" + # component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] + # for entity in component.entities: + # if entity.entity_id == entity_id: + # return entity + # + # entity: ThermostatOverClimate = find_my_entity("climate.theoverclimatemockname") assert entity assert isinstance(entity, ThermostatOverClimate) @@ -161,18 +162,19 @@ async def test_over_climate_regulation_ac_mode( "custom_components.versatile_thermostat.underlyings.UnderlyingClimate.find_underlying_climate", return_value=fake_underlying_climate, ): - entry.add_to_hass(hass) - await hass.config_entries.async_setup(entry.entry_id) - assert entry.state is ConfigEntryState.LOADED - - def find_my_entity(entity_id) -> ClimateEntity: - """Find my new entity""" - component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] - for entity in component.entities: - if entity.entity_id == entity_id: - return entity - - entity: ThermostatOverClimate = find_my_entity("climate.theoverclimatemockname") + entity = await create_thermostat(hass, entry, "climate.theoverclimatemockname") + # entry.add_to_hass(hass) + # await hass.config_entries.async_setup(entry.entry_id) + # assert entry.state is ConfigEntryState.LOADED + # + # def find_my_entity(entity_id) -> ClimateEntity: + # """Find my new entity""" + # component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] + # for entity in component.entities: + # if entity.entity_id == entity_id: + # return entity + # + # entity: ThermostatOverClimate = find_my_entity("climate.theoverclimatemockname") assert entity assert isinstance(entity, ThermostatOverClimate) diff --git a/tests/test_bugs.py b/tests/test_bugs.py index c5acb54..9dac4df 100644 --- a/tests/test_bugs.py +++ b/tests/test_bugs.py @@ -380,18 +380,19 @@ async def test_bug_82( "custom_components.versatile_thermostat.underlyings.UnderlyingClimate.find_underlying_climate", return_value=fake_underlying_climate, ) as mock_find_climate: - entry.add_to_hass(hass) - await hass.config_entries.async_setup(entry.entry_id) - assert entry.state is ConfigEntryState.LOADED - - def find_my_entity(entity_id) -> ClimateEntity: - """Find my new entity""" - component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] - for entity in component.entities: - if entity.entity_id == entity_id: - return entity - - entity = find_my_entity("climate.theoverclimatemockname") + entity = await create_thermostat(hass, entry, "climate.theoverclimatemockname") + # entry.add_to_hass(hass) + # await hass.config_entries.async_setup(entry.entry_id) + # assert entry.state is ConfigEntryState.LOADED + # + # def find_my_entity(entity_id) -> ClimateEntity: + # """Find my new entity""" + # component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] + # for entity in component.entities: + # if entity.entity_id == entity_id: + # return entity + # + # entity = find_my_entity("climate.theoverclimatemockname") assert entity @@ -490,18 +491,19 @@ async def test_bug_101( ) as mock_find_climate, patch( "custom_components.versatile_thermostat.underlyings.UnderlyingClimate.set_hvac_mode" ) as mock_underlying_set_hvac_mode: - entry.add_to_hass(hass) - await hass.config_entries.async_setup(entry.entry_id) - assert entry.state is ConfigEntryState.LOADED - - def find_my_entity(entity_id) -> ClimateEntity: - """Find my new entity""" - component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] - for entity in component.entities: - if entity.entity_id == entity_id: - return entity - - entity = find_my_entity("climate.theoverclimatemockname") + entity = await create_thermostat(hass, entry, "climate.theoverclimatemockname") + # entry.add_to_hass(hass) + # await hass.config_entries.async_setup(entry.entry_id) + # assert entry.state is ConfigEntryState.LOADED + # + # def find_my_entity(entity_id) -> ClimateEntity: + # """Find my new entity""" + # component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] + # for entity in component.entities: + # if entity.entity_id == entity_id: + # return entity + # + # entity = find_my_entity("climate.theoverclimatemockname") assert entity @@ -606,18 +608,19 @@ async def test_bug_272( ), patch( "homeassistant.core.ServiceRegistry.async_call" ) as mock_service_call: - entry.add_to_hass(hass) - await hass.config_entries.async_setup(entry.entry_id) - assert entry.state is ConfigEntryState.LOADED - - def find_my_entity(entity_id) -> ClimateEntity: - """Find my new entity""" - component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] - for entity in component.entities: - if entity.entity_id == entity_id: - return entity - - entity = find_my_entity("climate.theoverclimatemockname") + entity = await create_thermostat(hass, entry, "climate.theoverclimatemockname") + # entry.add_to_hass(hass) + # await hass.config_entries.async_setup(entry.entry_id) + # assert entry.state is ConfigEntryState.LOADED + # + # def find_my_entity(entity_id) -> ClimateEntity: + # """Find my new entity""" + # component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] + # for entity in component.entities: + # if entity.entity_id == entity_id: + # return entity + # + # entity = find_my_entity("climate.theoverclimatemockname") assert entity diff --git a/tests/test_central_config.py b/tests/test_central_config.py index 8b4291d..1dacc51 100644 --- a/tests/test_central_config.py +++ b/tests/test_central_config.py @@ -80,13 +80,16 @@ async def test_add_a_central_config(hass: HomeAssistant, skip_hass_states_is_sta }, ) - central_config_entry.add_to_hass(hass) - await hass.config_entries.async_setup(central_config_entry.entry_id) - assert central_config_entry.state is ConfigEntryState.LOADED - - entity: ThermostatOverClimate = search_entity( - hass, "climate.thecentralconfigmockname", "climate" + entity = await create_thermostat( + hass, central_config_entry, "climate.thecentralconfigmockname" ) + # central_config_entry.add_to_hass(hass) + # await hass.config_entries.async_setup(central_config_entry.entry_id) + # assert central_config_entry.state is ConfigEntryState.LOADED + # + # entity: ThermostatOverClimate = search_entity( + # hass, "climate.thecentralconfigmockname", "climate" + # ) assert entity is None diff --git a/tests/test_start.py b/tests/test_start.py index 8b08acf..2821517 100644 --- a/tests/test_start.py +++ b/tests/test_start.py @@ -38,18 +38,19 @@ async def test_over_switch_full_start(hass: HomeAssistant, skip_hass_states_is_s with patch( "custom_components.versatile_thermostat.base_thermostat.BaseThermostat.send_event" ) as mock_send_event: - entry.add_to_hass(hass) - await hass.config_entries.async_setup(entry.entry_id) - assert entry.state is ConfigEntryState.LOADED - - def find_my_entity(entity_id) -> ClimateEntity: - """Find my new entity""" - component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] - for entity in component.entities: - if entity.entity_id == entity_id: - return entity - - entity: BaseThermostat = find_my_entity("climate.theoverswitchmockname") + entity = await create_thermostat(hass, entry, "climate.theoverswitchmockname") + # entry.add_to_hass(hass) + # await hass.config_entries.async_setup(entry.entry_id) + # assert entry.state is ConfigEntryState.LOADED + # + # def find_my_entity(entity_id) -> ClimateEntity: + # """Find my new entity""" + # component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] + # for entity in component.entities: + # if entity.entity_id == entity_id: + # return entity + # + # entity: BaseThermostat = find_my_entity("climate.theoverswitchmockname") assert entity assert isinstance(entity, ThermostatOverSwitch) @@ -108,18 +109,19 @@ async def test_over_climate_full_start(hass: HomeAssistant, skip_hass_states_is_ "custom_components.versatile_thermostat.underlyings.UnderlyingClimate.find_underlying_climate", return_value=fake_underlying_climate, ) as mock_find_climate: - entry.add_to_hass(hass) - await hass.config_entries.async_setup(entry.entry_id) - assert entry.state is ConfigEntryState.LOADED - - def find_my_entity(entity_id) -> ClimateEntity: - """Find my new entity""" - component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] - for entity in component.entities: - if entity.entity_id == entity_id: - return entity - - entity = find_my_entity("climate.theoverclimatemockname") + entity = await create_thermostat(hass, entry, "climate.theoverclimatemockname") + # entry.add_to_hass(hass) + # await hass.config_entries.async_setup(entry.entry_id) + # assert entry.state is ConfigEntryState.LOADED + # + # def find_my_entity(entity_id) -> ClimateEntity: + # """Find my new entity""" + # component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] + # for entity in component.entities: + # if entity.entity_id == entity_id: + # return entity + # + # entity = find_my_entity("climate.theoverclimatemockname") assert entity assert isinstance(entity, ThermostatOverClimate) @@ -174,18 +176,19 @@ async def test_over_4switch_full_start(hass: HomeAssistant, skip_hass_states_is_ with patch( "custom_components.versatile_thermostat.base_thermostat.BaseThermostat.send_event" ) as mock_send_event: - entry.add_to_hass(hass) - await hass.config_entries.async_setup(entry.entry_id) - assert entry.state is ConfigEntryState.LOADED - - def find_my_entity(entity_id) -> ClimateEntity: - """Find my new entity""" - component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] - for entity in component.entities: - if entity.entity_id == entity_id: - return entity - - entity: BaseThermostat = find_my_entity("climate.theover4switchmockname") + entity = await create_thermostat(hass, entry, "climate.theover4switchmockname") + # entry.add_to_hass(hass) + # await hass.config_entries.async_setup(entry.entry_id) + # assert entry.state is ConfigEntryState.LOADED + # + # def find_my_entity(entity_id) -> ClimateEntity: + # """Find my new entity""" + # component: EntityComponent[ClimateEntity] = hass.data[CLIMATE_DOMAIN] + # for entity in component.entities: + # if entity.entity_id == entity_id: + # return entity + # + # entity: BaseThermostat = find_my_entity("climate.theover4switchmockname") assert entity