From 1eec49696a7537fdc7e7732d43615af049cf4a39 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Thu, 4 Jul 2024 10:30:17 +0200 Subject: [PATCH] Improve type hints in generic_hygrostat/thermostat tests (#121167) --- .../generic_hygrostat/test_humidifier.py | 186 ++++++++++-------- .../generic_thermostat/test_climate.py | 145 +++++++------- 2 files changed, 180 insertions(+), 151 deletions(-) diff --git a/tests/components/generic_hygrostat/test_humidifier.py b/tests/components/generic_hygrostat/test_humidifier.py index 15d80885d27..a97d5a7c1a6 100644 --- a/tests/components/generic_hygrostat/test_humidifier.py +++ b/tests/components/generic_hygrostat/test_humidifier.py @@ -87,13 +87,14 @@ async def test_valid_conf(hass: HomeAssistant) -> None: @pytest.fixture -async def setup_comp_1(hass): +async def setup_comp_1(hass: HomeAssistant) -> None: """Initialize components.""" assert await async_setup_component(hass, "homeassistant", {}) await hass.async_block_till_done() -async def test_humidifier_input_boolean(hass: HomeAssistant, setup_comp_1) -> None: +@pytest.mark.usefixtures("setup_comp_1") +async def test_humidifier_input_boolean(hass: HomeAssistant) -> None: """Test humidifier switching input_boolean.""" humidifier_switch = "input_boolean.test" assert await async_setup_component( @@ -132,8 +133,9 @@ async def test_humidifier_input_boolean(hass: HomeAssistant, setup_comp_1) -> No assert hass.states.get(ENTITY).attributes.get("action") == "humidifying" +@pytest.mark.usefixtures("setup_comp_1") async def test_humidifier_switch( - hass: HomeAssistant, setup_comp_1, mock_switch_entities: list[MockSwitch] + hass: HomeAssistant, mock_switch_entities: list[MockSwitch] ) -> None: """Test humidifier switching test switch.""" setup_test_component_platform(hass, switch.DOMAIN, mock_switch_entities) @@ -176,8 +178,9 @@ async def test_humidifier_switch( assert hass.states.get(ENTITY).attributes.get("action") == "humidifying" +@pytest.mark.usefixtures("setup_comp_1") async def test_unique_id( - hass: HomeAssistant, entity_registry: er.EntityRegistry, setup_comp_1 + hass: HomeAssistant, entity_registry: er.EntityRegistry ) -> None: """Test setting a unique ID.""" unique_id = "some_unique_id" @@ -209,7 +212,7 @@ def _setup_sensor(hass, humidity): @pytest.fixture -async def setup_comp_0(hass): +async def setup_comp_0(hass: HomeAssistant) -> None: """Initialize components.""" _setup_sensor(hass, 45) hass.states.async_set(ENT_SWITCH, STATE_OFF) @@ -235,7 +238,7 @@ async def setup_comp_0(hass): @pytest.fixture -async def setup_comp_2(hass): +async def setup_comp_2(hass: HomeAssistant) -> None: """Initialize components.""" _setup_sensor(hass, 45) hass.states.async_set(ENT_SWITCH, STATE_OFF) @@ -307,7 +310,8 @@ async def test_setup_defaults_to_unknown(hass: HomeAssistant) -> None: assert hass.states.get(ENTITY).state == STATE_UNAVAILABLE -async def test_default_setup_params(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_default_setup_params(hass: HomeAssistant) -> None: """Test the setup with default parameters.""" state = hass.states.get(ENTITY) assert state.attributes.get("min_humidity") == 0 @@ -316,9 +320,8 @@ async def test_default_setup_params(hass: HomeAssistant, setup_comp_2) -> None: assert state.attributes.get("action") == "idle" -async def test_default_setup_params_dehumidifier( - hass: HomeAssistant, setup_comp_0 -) -> None: +@pytest.mark.usefixtures("setup_comp_0") +async def test_default_setup_params_dehumidifier(hass: HomeAssistant) -> None: """Test the setup with default parameters for dehumidifier.""" state = hass.states.get(ENTITY) assert state.attributes.get("min_humidity") == 0 @@ -327,14 +330,16 @@ async def test_default_setup_params_dehumidifier( assert state.attributes.get("action") == "idle" -async def test_get_modes(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_get_modes(hass: HomeAssistant) -> None: """Test that the attributes returns the correct modes.""" state = hass.states.get(ENTITY) modes = state.attributes.get("available_modes") assert modes == [MODE_NORMAL, MODE_AWAY] -async def test_set_target_humidity(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_target_humidity(hass: HomeAssistant) -> None: """Test the setting of the target humidity.""" await hass.services.async_call( DOMAIN, @@ -357,7 +362,8 @@ async def test_set_target_humidity(hass: HomeAssistant, setup_comp_2) -> None: assert state.attributes.get("humidity") == 40 -async def test_set_away_mode(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_away_mode(hass: HomeAssistant) -> None: """Test the setting away mode.""" await hass.services.async_call( DOMAIN, @@ -377,9 +383,8 @@ async def test_set_away_mode(hass: HomeAssistant, setup_comp_2) -> None: assert state.attributes.get("humidity") == 35 -async def test_set_away_mode_and_restore_prev_humidity( - hass: HomeAssistant, setup_comp_2 -) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_away_mode_and_restore_prev_humidity(hass: HomeAssistant) -> None: """Test the setting and removing away mode. Verify original humidity is restored. @@ -411,8 +416,9 @@ async def test_set_away_mode_and_restore_prev_humidity( assert state.attributes.get("humidity") == 44 +@pytest.mark.usefixtures("setup_comp_2") async def test_set_away_mode_twice_and_restore_prev_humidity( - hass: HomeAssistant, setup_comp_2 + hass: HomeAssistant, ) -> None: """Test the setting away mode twice in a row. @@ -452,7 +458,8 @@ async def test_set_away_mode_twice_and_restore_prev_humidity( assert state.attributes.get("humidity") == 44 -async def test_sensor_affects_attribute(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_sensor_affects_attribute(hass: HomeAssistant) -> None: """Test that the sensor changes are reflected in the current_humidity attribute.""" state = hass.states.get(ENTITY) assert state.attributes.get("current_humidity") == 45 @@ -464,7 +471,8 @@ async def test_sensor_affects_attribute(hass: HomeAssistant, setup_comp_2) -> No assert state.attributes.get("current_humidity") == 47 -async def test_sensor_bad_value(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_sensor_bad_value(hass: HomeAssistant) -> None: """Test sensor that have None as state.""" assert hass.states.get(ENTITY).state == STATE_ON @@ -474,8 +482,9 @@ async def test_sensor_bad_value(hass: HomeAssistant, setup_comp_2) -> None: assert hass.states.get(ENTITY).state == STATE_UNAVAILABLE +@pytest.mark.usefixtures("setup_comp_2") async def test_sensor_bad_value_twice( - hass: HomeAssistant, setup_comp_2, caplog: pytest.LogCaptureFixture + hass: HomeAssistant, caplog: pytest.LogCaptureFixture ) -> None: """Test sensor that the second bad value is not logged as warning.""" assert hass.states.get(ENTITY).state == STATE_ON @@ -503,9 +512,8 @@ async def test_sensor_bad_value_twice( ] == ["DEBUG"] -async def test_set_target_humidity_humidifier_on( - hass: HomeAssistant, setup_comp_2 -) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_target_humidity_humidifier_on(hass: HomeAssistant) -> None: """Test if target humidity turn humidifier on.""" calls = await _setup_switch(hass, False) _setup_sensor(hass, 36) @@ -524,9 +532,8 @@ async def test_set_target_humidity_humidifier_on( assert call.data["entity_id"] == ENT_SWITCH -async def test_set_target_humidity_humidifier_off( - hass: HomeAssistant, setup_comp_2 -) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_target_humidity_humidifier_off(hass: HomeAssistant) -> None: """Test if target humidity turn humidifier off.""" calls = await _setup_switch(hass, True) _setup_sensor(hass, 45) @@ -545,8 +552,9 @@ async def test_set_target_humidity_humidifier_off( assert call.data["entity_id"] == ENT_SWITCH +@pytest.mark.usefixtures("setup_comp_2") async def test_humidity_change_humidifier_on_within_tolerance( - hass: HomeAssistant, setup_comp_2 + hass: HomeAssistant, ) -> None: """Test if humidity change doesn't turn on within tolerance.""" calls = await _setup_switch(hass, False) @@ -562,8 +570,9 @@ async def test_humidity_change_humidifier_on_within_tolerance( assert len(calls) == 0 +@pytest.mark.usefixtures("setup_comp_2") async def test_humidity_change_humidifier_on_outside_tolerance( - hass: HomeAssistant, setup_comp_2 + hass: HomeAssistant, ) -> None: """Test if humidity change turn humidifier on outside dry tolerance.""" calls = await _setup_switch(hass, False) @@ -583,8 +592,9 @@ async def test_humidity_change_humidifier_on_outside_tolerance( assert call.data["entity_id"] == ENT_SWITCH +@pytest.mark.usefixtures("setup_comp_2") async def test_humidity_change_humidifier_off_within_tolerance( - hass: HomeAssistant, setup_comp_2 + hass: HomeAssistant, ) -> None: """Test if humidity change doesn't turn off within tolerance.""" calls = await _setup_switch(hass, True) @@ -600,8 +610,9 @@ async def test_humidity_change_humidifier_off_within_tolerance( assert len(calls) == 0 +@pytest.mark.usefixtures("setup_comp_2") async def test_humidity_change_humidifier_off_outside_tolerance( - hass: HomeAssistant, setup_comp_2 + hass: HomeAssistant, ) -> None: """Test if humidity change turn humidifier off outside wet tolerance.""" calls = await _setup_switch(hass, True) @@ -621,7 +632,8 @@ async def test_humidity_change_humidifier_off_outside_tolerance( assert call.data["entity_id"] == ENT_SWITCH -async def test_operation_mode_humidify(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_operation_mode_humidify(hass: HomeAssistant) -> None: """Test change mode from OFF to HUMIDIFY. Switch turns on when humidity below setpoint and mode changes. @@ -675,7 +687,7 @@ async def _setup_switch(hass, is_on): @pytest.fixture -async def setup_comp_3(hass): +async def setup_comp_3(hass: HomeAssistant) -> None: """Initialize components.""" assert await async_setup_component( hass, @@ -698,7 +710,8 @@ async def setup_comp_3(hass): await hass.async_block_till_done() -async def test_set_target_humidity_dry_off(hass: HomeAssistant, setup_comp_3) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_set_target_humidity_dry_off(hass: HomeAssistant) -> None: """Test if target humidity turn dry off.""" calls = await _setup_switch(hass, True) _setup_sensor(hass, 50) @@ -718,7 +731,8 @@ async def test_set_target_humidity_dry_off(hass: HomeAssistant, setup_comp_3) -> assert hass.states.get(ENTITY).attributes.get("action") == "drying" -async def test_turn_away_mode_on_drying(hass: HomeAssistant, setup_comp_3) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_turn_away_mode_on_drying(hass: HomeAssistant) -> None: """Test the setting away mode when drying.""" await _setup_switch(hass, True) _setup_sensor(hass, 50) @@ -741,7 +755,8 @@ async def test_turn_away_mode_on_drying(hass: HomeAssistant, setup_comp_3) -> No assert state.attributes.get("humidity") == 30 -async def test_operation_mode_dry(hass: HomeAssistant, setup_comp_3) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_operation_mode_dry(hass: HomeAssistant) -> None: """Test change mode from OFF to DRY. Switch turns on when humidity below setpoint and state changes. @@ -774,7 +789,8 @@ async def test_operation_mode_dry(hass: HomeAssistant, setup_comp_3) -> None: assert call.data["entity_id"] == ENT_SWITCH -async def test_set_target_humidity_dry_on(hass: HomeAssistant, setup_comp_3) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_set_target_humidity_dry_on(hass: HomeAssistant) -> None: """Test if target humidity turn dry on.""" calls = await _setup_switch(hass, False) _setup_sensor(hass, 45) @@ -786,7 +802,8 @@ async def test_set_target_humidity_dry_on(hass: HomeAssistant, setup_comp_3) -> assert call.data["entity_id"] == ENT_SWITCH -async def test_init_ignores_tolerance(hass: HomeAssistant, setup_comp_3) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_init_ignores_tolerance(hass: HomeAssistant) -> None: """Test if tolerance is ignored on initialization.""" calls = await _setup_switch(hass, True) _setup_sensor(hass, 39) @@ -798,9 +815,8 @@ async def test_init_ignores_tolerance(hass: HomeAssistant, setup_comp_3) -> None assert call.data["entity_id"] == ENT_SWITCH -async def test_humidity_change_dry_off_within_tolerance( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_humidity_change_dry_off_within_tolerance(hass: HomeAssistant) -> None: """Test if humidity change doesn't turn dry off within tolerance.""" calls = await _setup_switch(hass, True) _setup_sensor(hass, 45) @@ -809,8 +825,9 @@ async def test_humidity_change_dry_off_within_tolerance( assert len(calls) == 0 +@pytest.mark.usefixtures("setup_comp_3") async def test_set_humidity_change_dry_off_outside_tolerance( - hass: HomeAssistant, setup_comp_3 + hass: HomeAssistant, ) -> None: """Test if humidity change turn dry off.""" calls = await _setup_switch(hass, True) @@ -823,9 +840,8 @@ async def test_set_humidity_change_dry_off_outside_tolerance( assert call.data["entity_id"] == ENT_SWITCH -async def test_humidity_change_dry_on_within_tolerance( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_humidity_change_dry_on_within_tolerance(hass: HomeAssistant) -> None: """Test if humidity change doesn't turn dry on within tolerance.""" calls = await _setup_switch(hass, False) _setup_sensor(hass, 37) @@ -834,9 +850,8 @@ async def test_humidity_change_dry_on_within_tolerance( assert len(calls) == 0 -async def test_humidity_change_dry_on_outside_tolerance( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_humidity_change_dry_on_outside_tolerance(hass: HomeAssistant) -> None: """Test if humidity change turn dry on.""" calls = await _setup_switch(hass, False) _setup_sensor(hass, 45) @@ -848,9 +863,8 @@ async def test_humidity_change_dry_on_outside_tolerance( assert call.data["entity_id"] == ENT_SWITCH -async def test_running_when_operating_mode_is_off_2( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_running_when_operating_mode_is_off_2(hass: HomeAssistant) -> None: """Test that the switch turns off when enabled is set False.""" calls = await _setup_switch(hass, True) _setup_sensor(hass, 45) @@ -870,9 +884,8 @@ async def test_running_when_operating_mode_is_off_2( assert hass.states.get(ENTITY).attributes.get("action") == "off" -async def test_no_state_change_when_operation_mode_off_2( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_no_state_change_when_operation_mode_off_2(hass: HomeAssistant) -> None: """Test that the switch doesn't turn on when enabled is False.""" calls = await _setup_switch(hass, False) _setup_sensor(hass, 30) @@ -891,7 +904,7 @@ async def test_no_state_change_when_operation_mode_off_2( @pytest.fixture -async def setup_comp_4(hass): +async def setup_comp_4(hass: HomeAssistant) -> None: """Initialize components.""" assert await async_setup_component( hass, @@ -914,8 +927,9 @@ async def setup_comp_4(hass): await hass.async_block_till_done() +@pytest.mark.usefixtures("setup_comp_4") async def test_humidity_change_dry_trigger_on_not_long_enough( - hass: HomeAssistant, setup_comp_4 + hass: HomeAssistant, ) -> None: """Test if humidity change turn dry on.""" calls = await _setup_switch(hass, False) @@ -928,9 +942,8 @@ async def test_humidity_change_dry_trigger_on_not_long_enough( assert len(calls) == 0 -async def test_humidity_change_dry_trigger_on_long_enough( - hass: HomeAssistant, setup_comp_4 -) -> None: +@pytest.mark.usefixtures("setup_comp_4") +async def test_humidity_change_dry_trigger_on_long_enough(hass: HomeAssistant) -> None: """Test if humidity change turn dry on.""" fake_changed = datetime.datetime(1970, 11, 11, 11, 11, 11, tzinfo=datetime.UTC) with freeze_time(fake_changed): @@ -948,8 +961,9 @@ async def test_humidity_change_dry_trigger_on_long_enough( assert call.data["entity_id"] == ENT_SWITCH +@pytest.mark.usefixtures("setup_comp_4") async def test_humidity_change_dry_trigger_off_not_long_enough( - hass: HomeAssistant, setup_comp_4 + hass: HomeAssistant, ) -> None: """Test if humidity change turn dry on.""" calls = await _setup_switch(hass, True) @@ -962,9 +976,8 @@ async def test_humidity_change_dry_trigger_off_not_long_enough( assert len(calls) == 0 -async def test_humidity_change_dry_trigger_off_long_enough( - hass: HomeAssistant, setup_comp_4 -) -> None: +@pytest.mark.usefixtures("setup_comp_4") +async def test_humidity_change_dry_trigger_off_long_enough(hass: HomeAssistant) -> None: """Test if humidity change turn dry on.""" fake_changed = datetime.datetime(1970, 11, 11, 11, 11, 11, tzinfo=datetime.UTC) with freeze_time(fake_changed): @@ -982,9 +995,8 @@ async def test_humidity_change_dry_trigger_off_long_enough( assert call.data["entity_id"] == ENT_SWITCH -async def test_mode_change_dry_trigger_off_not_long_enough( - hass: HomeAssistant, setup_comp_4 -) -> None: +@pytest.mark.usefixtures("setup_comp_4") +async def test_mode_change_dry_trigger_off_not_long_enough(hass: HomeAssistant) -> None: """Test if mode change turns dry off despite minimum cycle.""" calls = await _setup_switch(hass, True) _setup_sensor(hass, 45) @@ -1004,9 +1016,8 @@ async def test_mode_change_dry_trigger_off_not_long_enough( assert call.data["entity_id"] == ENT_SWITCH -async def test_mode_change_dry_trigger_on_not_long_enough( - hass: HomeAssistant, setup_comp_4 -) -> None: +@pytest.mark.usefixtures("setup_comp_4") +async def test_mode_change_dry_trigger_on_not_long_enough(hass: HomeAssistant) -> None: """Test if mode change turns dry on despite minimum cycle.""" calls = await _setup_switch(hass, False) _setup_sensor(hass, 35) @@ -1036,7 +1047,7 @@ async def test_mode_change_dry_trigger_on_not_long_enough( @pytest.fixture -async def setup_comp_6(hass): +async def setup_comp_6(hass: HomeAssistant) -> None: """Initialize components.""" assert await async_setup_component( hass, @@ -1058,8 +1069,9 @@ async def setup_comp_6(hass): await hass.async_block_till_done() +@pytest.mark.usefixtures("setup_comp_6") async def test_humidity_change_humidifier_trigger_off_not_long_enough( - hass: HomeAssistant, setup_comp_6 + hass: HomeAssistant, ) -> None: """Test if humidity change doesn't turn humidifier off because of time.""" calls = await _setup_switch(hass, True) @@ -1072,8 +1084,9 @@ async def test_humidity_change_humidifier_trigger_off_not_long_enough( assert len(calls) == 0 +@pytest.mark.usefixtures("setup_comp_6") async def test_humidity_change_humidifier_trigger_on_not_long_enough( - hass: HomeAssistant, setup_comp_6 + hass: HomeAssistant, ) -> None: """Test if humidity change doesn't turn humidifier on because of time.""" calls = await _setup_switch(hass, False) @@ -1086,8 +1099,9 @@ async def test_humidity_change_humidifier_trigger_on_not_long_enough( assert len(calls) == 0 +@pytest.mark.usefixtures("setup_comp_6") async def test_humidity_change_humidifier_trigger_on_long_enough( - hass: HomeAssistant, setup_comp_6 + hass: HomeAssistant, ) -> None: """Test if humidity change turn humidifier on after min cycle.""" fake_changed = datetime.datetime(1970, 11, 11, 11, 11, 11, tzinfo=datetime.UTC) @@ -1106,8 +1120,9 @@ async def test_humidity_change_humidifier_trigger_on_long_enough( assert call.data["entity_id"] == ENT_SWITCH +@pytest.mark.usefixtures("setup_comp_6") async def test_humidity_change_humidifier_trigger_off_long_enough( - hass: HomeAssistant, setup_comp_6 + hass: HomeAssistant, ) -> None: """Test if humidity change turn humidifier off after min cycle.""" fake_changed = datetime.datetime(1970, 11, 11, 11, 11, 11, tzinfo=datetime.UTC) @@ -1126,8 +1141,9 @@ async def test_humidity_change_humidifier_trigger_off_long_enough( assert call.data["entity_id"] == ENT_SWITCH +@pytest.mark.usefixtures("setup_comp_6") async def test_mode_change_humidifier_trigger_off_not_long_enough( - hass: HomeAssistant, setup_comp_6 + hass: HomeAssistant, ) -> None: """Test if mode change turns humidifier off despite minimum cycle.""" calls = await _setup_switch(hass, True) @@ -1149,8 +1165,9 @@ async def test_mode_change_humidifier_trigger_off_not_long_enough( assert call.data["entity_id"] == ENT_SWITCH +@pytest.mark.usefixtures("setup_comp_6") async def test_mode_change_humidifier_trigger_on_not_long_enough( - hass: HomeAssistant, setup_comp_6 + hass: HomeAssistant, ) -> None: """Test if mode change turns humidifier on despite minimum cycle.""" calls = await _setup_switch(hass, False) @@ -1186,7 +1203,7 @@ async def test_mode_change_humidifier_trigger_on_not_long_enough( @pytest.fixture -async def setup_comp_7(hass): +async def setup_comp_7(hass: HomeAssistant) -> None: """Initialize components.""" assert await async_setup_component( hass, @@ -1210,8 +1227,9 @@ async def setup_comp_7(hass): await hass.async_block_till_done() +@pytest.mark.usefixtures("setup_comp_7") async def test_humidity_change_dry_trigger_on_long_enough_3( - hass: HomeAssistant, setup_comp_7 + hass: HomeAssistant, ) -> None: """Test if turn on signal is sent at keep-alive intervals.""" calls = await _setup_switch(hass, True) @@ -1230,8 +1248,9 @@ async def test_humidity_change_dry_trigger_on_long_enough_3( assert call.data["entity_id"] == ENT_SWITCH +@pytest.mark.usefixtures("setup_comp_7") async def test_humidity_change_dry_trigger_off_long_enough_3( - hass: HomeAssistant, setup_comp_7 + hass: HomeAssistant, ) -> None: """Test if turn on signal is sent at keep-alive intervals.""" calls = await _setup_switch(hass, False) @@ -1251,7 +1270,7 @@ async def test_humidity_change_dry_trigger_off_long_enough_3( @pytest.fixture -async def setup_comp_8(hass): +async def setup_comp_8(hass: HomeAssistant) -> None: """Initialize components.""" assert await async_setup_component( hass, @@ -1274,8 +1293,9 @@ async def setup_comp_8(hass): await hass.async_block_till_done() +@pytest.mark.usefixtures("setup_comp_8") async def test_humidity_change_humidifier_trigger_on_long_enough_2( - hass: HomeAssistant, setup_comp_8 + hass: HomeAssistant, ) -> None: """Test if turn on signal is sent at keep-alive intervals.""" calls = await _setup_switch(hass, True) @@ -1294,8 +1314,9 @@ async def test_humidity_change_humidifier_trigger_on_long_enough_2( assert call.data["entity_id"] == ENT_SWITCH +@pytest.mark.usefixtures("setup_comp_8") async def test_humidity_change_humidifier_trigger_off_long_enough_2( - hass: HomeAssistant, setup_comp_8 + hass: HomeAssistant, ) -> None: """Test if turn on signal is sent at keep-alive intervals.""" calls = await _setup_switch(hass, False) @@ -1706,8 +1727,9 @@ async def test_away_fixed_humidity_mode(hass: HomeAssistant) -> None: assert state.state == STATE_OFF +@pytest.mark.usefixtures("setup_comp_1") async def test_sensor_stale_duration( - hass: HomeAssistant, setup_comp_1, caplog: pytest.LogCaptureFixture + hass: HomeAssistant, caplog: pytest.LogCaptureFixture ) -> None: """Test turn off on sensor stale.""" diff --git a/tests/components/generic_thermostat/test_climate.py b/tests/components/generic_thermostat/test_climate.py index 7fb3e11e189..3ea38a22c3c 100644 --- a/tests/components/generic_thermostat/test_climate.py +++ b/tests/components/generic_thermostat/test_climate.py @@ -103,14 +103,15 @@ async def test_valid_conf(hass: HomeAssistant) -> None: @pytest.fixture -async def setup_comp_1(hass): +async def setup_comp_1(hass: HomeAssistant) -> None: """Initialize components.""" hass.config.units = METRIC_SYSTEM assert await async_setup_component(hass, "homeassistant", {}) await hass.async_block_till_done() -async def test_heater_input_boolean(hass: HomeAssistant, setup_comp_1) -> None: +@pytest.mark.usefixtures("setup_comp_1") +async def test_heater_input_boolean(hass: HomeAssistant) -> None: """Test heater switching input_boolean.""" heater_switch = "input_boolean.test" assert await async_setup_component( @@ -142,8 +143,9 @@ async def test_heater_input_boolean(hass: HomeAssistant, setup_comp_1) -> None: assert hass.states.get(heater_switch).state == STATE_ON +@pytest.mark.usefixtures("setup_comp_1") async def test_heater_switch( - hass: HomeAssistant, setup_comp_1, mock_switch_entities: list[MockSwitch] + hass: HomeAssistant, mock_switch_entities: list[MockSwitch] ) -> None: """Test heater switching test switch.""" setup_test_component_platform(hass, switch.DOMAIN, mock_switch_entities) @@ -178,8 +180,9 @@ async def test_heater_switch( assert hass.states.get(heater_switch).state == STATE_ON +@pytest.mark.usefixtures("setup_comp_1") async def test_unique_id( - hass: HomeAssistant, entity_registry: er.EntityRegistry, setup_comp_1 + hass: HomeAssistant, entity_registry: er.EntityRegistry ) -> None: """Test setting a unique ID.""" unique_id = "some_unique_id" @@ -211,7 +214,7 @@ def _setup_sensor(hass, temp): @pytest.fixture -async def setup_comp_2(hass): +async def setup_comp_2(hass: HomeAssistant) -> None: """Initialize components.""" hass.config.units = METRIC_SYSTEM assert await async_setup_component( @@ -284,7 +287,8 @@ async def test_setup_gets_current_temp_from_sensor(hass: HomeAssistant) -> None: assert hass.states.get(ENTITY).attributes["current_temperature"] == 18 -async def test_default_setup_params(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_default_setup_params(hass: HomeAssistant) -> None: """Test the setup with default parameters.""" state = hass.states.get(ENTITY) assert state.attributes.get("min_temp") == 7 @@ -293,14 +297,16 @@ async def test_default_setup_params(hass: HomeAssistant, setup_comp_2) -> None: assert state.attributes.get("target_temp_step") == 0.1 -async def test_get_hvac_modes(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_get_hvac_modes(hass: HomeAssistant) -> None: """Test that the operation list returns the correct modes.""" state = hass.states.get(ENTITY) modes = state.attributes.get("hvac_modes") assert modes == [HVACMode.HEAT, HVACMode.OFF] -async def test_set_target_temp(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_target_temp(hass: HomeAssistant) -> None: """Test the setting of the target temperature.""" await common.async_set_temperature(hass, 30) state = hass.states.get(ENTITY) @@ -323,7 +329,8 @@ async def test_set_target_temp(hass: HomeAssistant, setup_comp_2) -> None: (PRESET_ACTIVITY, 21), ], ) -async def test_set_away_mode(hass: HomeAssistant, setup_comp_2, preset, temp) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_away_mode(hass: HomeAssistant, preset, temp) -> None: """Test the setting away mode.""" await common.async_set_temperature(hass, 23) await common.async_set_preset_mode(hass, preset) @@ -343,8 +350,9 @@ async def test_set_away_mode(hass: HomeAssistant, setup_comp_2, preset, temp) -> (PRESET_ACTIVITY, 21), ], ) +@pytest.mark.usefixtures("setup_comp_2") async def test_set_away_mode_and_restore_prev_temp( - hass: HomeAssistant, setup_comp_2, preset, temp + hass: HomeAssistant, preset, temp ) -> None: """Test the setting and removing away mode. @@ -371,8 +379,9 @@ async def test_set_away_mode_and_restore_prev_temp( (PRESET_ACTIVITY, 21), ], ) +@pytest.mark.usefixtures("setup_comp_2") async def test_set_away_mode_twice_and_restore_prev_temp( - hass: HomeAssistant, setup_comp_2, preset, temp + hass: HomeAssistant, preset, temp ) -> None: """Test the setting away mode twice in a row. @@ -388,7 +397,8 @@ async def test_set_away_mode_twice_and_restore_prev_temp( assert state.attributes.get("temperature") == 23 -async def test_set_preset_mode_invalid(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_preset_mode_invalid(hass: HomeAssistant) -> None: """Test an invalid mode raises an error and ignore case when checking modes.""" await common.async_set_temperature(hass, 23) await common.async_set_preset_mode(hass, "away") @@ -403,7 +413,8 @@ async def test_set_preset_mode_invalid(hass: HomeAssistant, setup_comp_2) -> Non assert state.attributes.get("preset_mode") == "none" -async def test_sensor_bad_value(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_sensor_bad_value(hass: HomeAssistant) -> None: """Test sensor that have None as state.""" state = hass.states.get(ENTITY) temp = state.attributes.get("current_temperature") @@ -464,7 +475,8 @@ async def test_sensor_unavailable(hass: HomeAssistant) -> None: assert state.attributes.get("current_temperature") is None -async def test_set_target_temp_heater_on(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_target_temp_heater_on(hass: HomeAssistant) -> None: """Test if target temperature turn heater on.""" calls = _setup_switch(hass, False) _setup_sensor(hass, 25) @@ -477,7 +489,8 @@ async def test_set_target_temp_heater_on(hass: HomeAssistant, setup_comp_2) -> N assert call.data["entity_id"] == ENT_SWITCH -async def test_set_target_temp_heater_off(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_set_target_temp_heater_off(hass: HomeAssistant) -> None: """Test if target temperature turn heater off.""" calls = _setup_switch(hass, True) _setup_sensor(hass, 30) @@ -490,9 +503,8 @@ async def test_set_target_temp_heater_off(hass: HomeAssistant, setup_comp_2) -> assert call.data["entity_id"] == ENT_SWITCH -async def test_temp_change_heater_on_within_tolerance( - hass: HomeAssistant, setup_comp_2 -) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_temp_change_heater_on_within_tolerance(hass: HomeAssistant) -> None: """Test if temperature change doesn't turn on within tolerance.""" calls = _setup_switch(hass, False) await common.async_set_temperature(hass, 30) @@ -501,9 +513,8 @@ async def test_temp_change_heater_on_within_tolerance( assert len(calls) == 0 -async def test_temp_change_heater_on_outside_tolerance( - hass: HomeAssistant, setup_comp_2 -) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_temp_change_heater_on_outside_tolerance(hass: HomeAssistant) -> None: """Test if temperature change turn heater on outside cold tolerance.""" calls = _setup_switch(hass, False) await common.async_set_temperature(hass, 30) @@ -516,9 +527,8 @@ async def test_temp_change_heater_on_outside_tolerance( assert call.data["entity_id"] == ENT_SWITCH -async def test_temp_change_heater_off_within_tolerance( - hass: HomeAssistant, setup_comp_2 -) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_temp_change_heater_off_within_tolerance(hass: HomeAssistant) -> None: """Test if temperature change doesn't turn off within tolerance.""" calls = _setup_switch(hass, True) await common.async_set_temperature(hass, 30) @@ -527,9 +537,8 @@ async def test_temp_change_heater_off_within_tolerance( assert len(calls) == 0 -async def test_temp_change_heater_off_outside_tolerance( - hass: HomeAssistant, setup_comp_2 -) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_temp_change_heater_off_outside_tolerance(hass: HomeAssistant) -> None: """Test if temperature change turn heater off outside hot tolerance.""" calls = _setup_switch(hass, True) await common.async_set_temperature(hass, 30) @@ -542,7 +551,8 @@ async def test_temp_change_heater_off_outside_tolerance( assert call.data["entity_id"] == ENT_SWITCH -async def test_running_when_hvac_mode_is_off(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_running_when_hvac_mode_is_off(hass: HomeAssistant) -> None: """Test that the switch turns off when enabled is set False.""" calls = _setup_switch(hass, True) await common.async_set_temperature(hass, 30) @@ -554,9 +564,8 @@ async def test_running_when_hvac_mode_is_off(hass: HomeAssistant, setup_comp_2) assert call.data["entity_id"] == ENT_SWITCH -async def test_no_state_change_when_hvac_mode_off( - hass: HomeAssistant, setup_comp_2 -) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_no_state_change_when_hvac_mode_off(hass: HomeAssistant) -> None: """Test that the switch doesn't turn on when enabled is False.""" calls = _setup_switch(hass, False) await common.async_set_temperature(hass, 30) @@ -566,7 +575,8 @@ async def test_no_state_change_when_hvac_mode_off( assert len(calls) == 0 -async def test_hvac_mode_heat(hass: HomeAssistant, setup_comp_2) -> None: +@pytest.mark.usefixtures("setup_comp_2") +async def test_hvac_mode_heat(hass: HomeAssistant) -> None: """Test change mode from OFF to HEAT. Switch turns on when temp below setpoint and mode changes. @@ -601,7 +611,7 @@ def _setup_switch(hass, is_on): @pytest.fixture -async def setup_comp_3(hass): +async def setup_comp_3(hass: HomeAssistant) -> None: """Initialize components.""" hass.config.temperature_unit = UnitOfTemperature.CELSIUS assert await async_setup_component( @@ -624,7 +634,8 @@ async def setup_comp_3(hass): await hass.async_block_till_done() -async def test_set_target_temp_ac_off(hass: HomeAssistant, setup_comp_3) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_set_target_temp_ac_off(hass: HomeAssistant) -> None: """Test if target temperature turn ac off.""" calls = _setup_switch(hass, True) _setup_sensor(hass, 25) @@ -637,7 +648,8 @@ async def test_set_target_temp_ac_off(hass: HomeAssistant, setup_comp_3) -> None assert call.data["entity_id"] == ENT_SWITCH -async def test_turn_away_mode_on_cooling(hass: HomeAssistant, setup_comp_3) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_turn_away_mode_on_cooling(hass: HomeAssistant) -> None: """Test the setting away mode when cooling.""" _setup_switch(hass, True) _setup_sensor(hass, 25) @@ -648,7 +660,8 @@ async def test_turn_away_mode_on_cooling(hass: HomeAssistant, setup_comp_3) -> N assert state.attributes.get("temperature") == 30 -async def test_hvac_mode_cool(hass: HomeAssistant, setup_comp_3) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_hvac_mode_cool(hass: HomeAssistant) -> None: """Test change mode from OFF to COOL. Switch turns on when temp below setpoint and mode changes. @@ -666,7 +679,8 @@ async def test_hvac_mode_cool(hass: HomeAssistant, setup_comp_3) -> None: assert call.data["entity_id"] == ENT_SWITCH -async def test_set_target_temp_ac_on(hass: HomeAssistant, setup_comp_3) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_set_target_temp_ac_on(hass: HomeAssistant) -> None: """Test if target temperature turn ac on.""" calls = _setup_switch(hass, False) _setup_sensor(hass, 30) @@ -679,9 +693,8 @@ async def test_set_target_temp_ac_on(hass: HomeAssistant, setup_comp_3) -> None: assert call.data["entity_id"] == ENT_SWITCH -async def test_temp_change_ac_off_within_tolerance( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_temp_change_ac_off_within_tolerance(hass: HomeAssistant) -> None: """Test if temperature change doesn't turn ac off within tolerance.""" calls = _setup_switch(hass, True) await common.async_set_temperature(hass, 30) @@ -690,9 +703,8 @@ async def test_temp_change_ac_off_within_tolerance( assert len(calls) == 0 -async def test_set_temp_change_ac_off_outside_tolerance( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_set_temp_change_ac_off_outside_tolerance(hass: HomeAssistant) -> None: """Test if temperature change turn ac off.""" calls = _setup_switch(hass, True) await common.async_set_temperature(hass, 30) @@ -705,9 +717,8 @@ async def test_set_temp_change_ac_off_outside_tolerance( assert call.data["entity_id"] == ENT_SWITCH -async def test_temp_change_ac_on_within_tolerance( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_temp_change_ac_on_within_tolerance(hass: HomeAssistant) -> None: """Test if temperature change doesn't turn ac on within tolerance.""" calls = _setup_switch(hass, False) await common.async_set_temperature(hass, 25) @@ -716,9 +727,8 @@ async def test_temp_change_ac_on_within_tolerance( assert len(calls) == 0 -async def test_temp_change_ac_on_outside_tolerance( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_temp_change_ac_on_outside_tolerance(hass: HomeAssistant) -> None: """Test if temperature change turn ac on.""" calls = _setup_switch(hass, False) await common.async_set_temperature(hass, 25) @@ -731,9 +741,8 @@ async def test_temp_change_ac_on_outside_tolerance( assert call.data["entity_id"] == ENT_SWITCH -async def test_running_when_operating_mode_is_off_2( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_running_when_operating_mode_is_off_2(hass: HomeAssistant) -> None: """Test that the switch turns off when enabled is set False.""" calls = _setup_switch(hass, True) await common.async_set_temperature(hass, 30) @@ -745,9 +754,8 @@ async def test_running_when_operating_mode_is_off_2( assert call.data["entity_id"] == ENT_SWITCH -async def test_no_state_change_when_operation_mode_off_2( - hass: HomeAssistant, setup_comp_3 -) -> None: +@pytest.mark.usefixtures("setup_comp_3") +async def test_no_state_change_when_operation_mode_off_2(hass: HomeAssistant) -> None: """Test that the switch doesn't turn on when enabled is False.""" calls = _setup_switch(hass, False) await common.async_set_temperature(hass, 30) @@ -912,7 +920,7 @@ async def test_hvac_mode_change_toggles_heating_cooling_switch_even_when_within_ @pytest.fixture -async def setup_comp_7(hass): +async def setup_comp_7(hass: HomeAssistant) -> None: """Initialize components.""" hass.config.temperature_unit = UnitOfTemperature.CELSIUS assert await async_setup_component( @@ -938,9 +946,8 @@ async def setup_comp_7(hass): await hass.async_block_till_done() -async def test_temp_change_ac_trigger_on_long_enough_3( - hass: HomeAssistant, setup_comp_7 -) -> None: +@pytest.mark.usefixtures("setup_comp_7") +async def test_temp_change_ac_trigger_on_long_enough_3(hass: HomeAssistant) -> None: """Test if turn on signal is sent at keep-alive intervals.""" calls = _setup_switch(hass, True) await hass.async_block_till_done() @@ -963,9 +970,8 @@ async def test_temp_change_ac_trigger_on_long_enough_3( assert call.data["entity_id"] == ENT_SWITCH -async def test_temp_change_ac_trigger_off_long_enough_3( - hass: HomeAssistant, setup_comp_7 -) -> None: +@pytest.mark.usefixtures("setup_comp_7") +async def test_temp_change_ac_trigger_off_long_enough_3(hass: HomeAssistant) -> None: """Test if turn on signal is sent at keep-alive intervals.""" calls = _setup_switch(hass, False) await hass.async_block_till_done() @@ -989,7 +995,7 @@ async def test_temp_change_ac_trigger_off_long_enough_3( @pytest.fixture -async def setup_comp_8(hass): +async def setup_comp_8(hass: HomeAssistant) -> None: """Initialize components.""" hass.config.temperature_unit = UnitOfTemperature.CELSIUS assert await async_setup_component( @@ -1013,9 +1019,8 @@ async def setup_comp_8(hass): await hass.async_block_till_done() -async def test_temp_change_heater_trigger_on_long_enough_2( - hass: HomeAssistant, setup_comp_8 -) -> None: +@pytest.mark.usefixtures("setup_comp_8") +async def test_temp_change_heater_trigger_on_long_enough_2(hass: HomeAssistant) -> None: """Test if turn on signal is sent at keep-alive intervals.""" calls = _setup_switch(hass, True) await hass.async_block_till_done() @@ -1038,8 +1043,9 @@ async def test_temp_change_heater_trigger_on_long_enough_2( assert call.data["entity_id"] == ENT_SWITCH +@pytest.mark.usefixtures("setup_comp_8") async def test_temp_change_heater_trigger_off_long_enough_2( - hass: HomeAssistant, setup_comp_8 + hass: HomeAssistant, ) -> None: """Test if turn on signal is sent at keep-alive intervals.""" calls = _setup_switch(hass, False) @@ -1064,7 +1070,7 @@ async def test_temp_change_heater_trigger_off_long_enough_2( @pytest.fixture -async def setup_comp_9(hass): +async def setup_comp_9(hass: HomeAssistant) -> None: """Initialize components.""" assert await async_setup_component( hass, @@ -1087,7 +1093,8 @@ async def setup_comp_9(hass): await hass.async_block_till_done() -async def test_precision(hass: HomeAssistant, setup_comp_9) -> None: +@pytest.mark.usefixtures("setup_comp_9") +async def test_precision(hass: HomeAssistant) -> None: """Test that setting precision to tenths works as intended.""" hass.config.units = US_CUSTOMARY_SYSTEM await common.async_set_temperature(hass, 23.27)