mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 08:47:57 +00:00
Plugwise test-code improvements (#134193)
This commit is contained in:
parent
7b413b5faf
commit
a2afc1b670
@ -30,6 +30,24 @@ def _read_json(environment: str, call: str) -> dict[str, Any]:
|
||||
return json.loads(fixture)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def chosen_env(request: pytest.FixtureRequest) -> str:
|
||||
"""Pass the chosen_env string.
|
||||
|
||||
Used with fixtures that require parametrization of the user-data fixture.
|
||||
"""
|
||||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def gateway_id(request: pytest.FixtureRequest) -> str:
|
||||
"""Pass the gateway_id string.
|
||||
|
||||
Used with fixtures that require parametrization of the gateway_id.
|
||||
"""
|
||||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_config_entry() -> MockConfigEntry:
|
||||
"""Return the default mocked config entry."""
|
||||
@ -76,7 +94,7 @@ def mock_smile_config_flow() -> Generator[MagicMock]:
|
||||
def mock_smile_adam() -> Generator[MagicMock]:
|
||||
"""Create a Mock Adam environment for testing exceptions."""
|
||||
chosen_env = "m_adam_multiple_devices_per_zone"
|
||||
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
with (
|
||||
patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
@ -97,7 +115,6 @@ def mock_smile_adam() -> Generator[MagicMock]:
|
||||
smile.smile_model_id = "smile_open_therm"
|
||||
smile.smile_name = "Adam"
|
||||
smile.connect.return_value = Version("3.0.15")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
@ -106,15 +123,18 @@ def mock_smile_adam() -> Generator[MagicMock]:
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_adam_2() -> Generator[MagicMock]:
|
||||
"""Create a 2nd Mock Adam environment for testing exceptions."""
|
||||
chosen_env = "m_adam_heating"
|
||||
|
||||
def mock_smile_adam_heat_cool(chosen_env: str) -> Generator[MagicMock]:
|
||||
"""Create a special base Mock Adam type for testing with different datasets."""
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.connect.return_value = Version("3.6.4")
|
||||
smile.gateway_id = "da224107914542988a88561b4452b0f6"
|
||||
smile.heater_id = "056ee145a816487eaa69243c3280f8bf"
|
||||
smile.smile_version = "3.6.4"
|
||||
@ -123,47 +143,15 @@ def mock_smile_adam_2() -> Generator[MagicMock]:
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile_open_therm"
|
||||
smile.smile_name = "Adam"
|
||||
smile.connect.return_value = Version("3.6.4")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
|
||||
yield smile
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_adam_3() -> Generator[MagicMock]:
|
||||
"""Create a 3rd Mock Adam environment for testing exceptions."""
|
||||
chosen_env = "m_adam_cooling"
|
||||
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.gateway_id = "da224107914542988a88561b4452b0f6"
|
||||
smile.heater_id = "056ee145a816487eaa69243c3280f8bf"
|
||||
smile.smile_version = "3.6.4"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile_open_therm"
|
||||
smile.smile_name = "Adam"
|
||||
smile.connect.return_value = Version("3.6.4")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
|
||||
yield smile
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_adam_4() -> Generator[MagicMock]:
|
||||
"""Create a 4th Mock Adam environment for testing exceptions."""
|
||||
def mock_smile_adam_jip() -> Generator[MagicMock]:
|
||||
"""Create a Mock adam-jip type for testing exceptions."""
|
||||
chosen_env = "m_adam_jip"
|
||||
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
@ -178,7 +166,6 @@ def mock_smile_adam_4() -> Generator[MagicMock]:
|
||||
smile.smile_model_id = "smile_open_therm"
|
||||
smile.smile_name = "Adam"
|
||||
smile.connect.return_value = Version("3.2.8")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
@ -187,14 +174,18 @@ def mock_smile_adam_4() -> Generator[MagicMock]:
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_anna() -> Generator[MagicMock]:
|
||||
"""Create a Mock Anna environment for testing exceptions."""
|
||||
chosen_env = "anna_heatpump_heating"
|
||||
def mock_smile_anna(chosen_env: str) -> Generator[MagicMock]:
|
||||
"""Create a Mock Anna type for testing."""
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.connect.return_value = Version("4.0.15")
|
||||
smile.gateway_id = "015ae9ea3f964e668e490fa39da3870b"
|
||||
smile.heater_id = "1cbf783bb11e4a7c8a6843dee3a86927"
|
||||
smile.smile_version = "4.0.15"
|
||||
@ -203,115 +194,31 @@ def mock_smile_anna() -> Generator[MagicMock]:
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile_thermo"
|
||||
smile.smile_name = "Smile Anna"
|
||||
smile.connect.return_value = Version("4.0.15")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
|
||||
yield smile
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_anna_2() -> Generator[MagicMock]:
|
||||
"""Create a 2nd Mock Anna environment for testing exceptions."""
|
||||
chosen_env = "m_anna_heatpump_cooling"
|
||||
def mock_smile_p1(chosen_env: str, gateway_id: str) -> Generator[MagicMock]:
|
||||
"""Create a base Mock P1 type for testing with different datasets and gateway-ids."""
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.gateway_id = "015ae9ea3f964e668e490fa39da3870b"
|
||||
smile.heater_id = "1cbf783bb11e4a7c8a6843dee3a86927"
|
||||
smile.smile_version = "4.0.15"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile_thermo"
|
||||
smile.smile_name = "Smile Anna"
|
||||
smile.connect.return_value = Version("4.0.15")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
|
||||
yield smile
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_anna_3() -> Generator[MagicMock]:
|
||||
"""Create a 3rd Mock Anna environment for testing exceptions."""
|
||||
chosen_env = "m_anna_heatpump_idle"
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.gateway_id = "015ae9ea3f964e668e490fa39da3870b"
|
||||
smile.heater_id = "1cbf783bb11e4a7c8a6843dee3a86927"
|
||||
smile.smile_version = "4.0.15"
|
||||
smile.smile_type = "thermostat"
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile_thermo"
|
||||
smile.smile_name = "Smile Anna"
|
||||
smile.connect.return_value = Version("4.0.15")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
|
||||
yield smile
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_p1() -> Generator[MagicMock]:
|
||||
"""Create a Mock P1 DSMR environment for testing exceptions."""
|
||||
chosen_env = "p1v4_442_single"
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.gateway_id = "a455b61e52394b2db5081ce025a430f3"
|
||||
smile.connect.return_value = Version("4.4.2")
|
||||
smile.gateway_id = gateway_id
|
||||
smile.heater_id = None
|
||||
smile.smile_version = "4.4.2"
|
||||
smile.smile_type = "power"
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile"
|
||||
smile.smile_name = "Smile P1"
|
||||
smile.connect.return_value = Version("4.4.2")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
|
||||
yield smile
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_smile_p1_2() -> Generator[MagicMock]:
|
||||
"""Create a Mock P1 3-phase DSMR environment for testing exceptions."""
|
||||
chosen_env = "p1v4_442_triple"
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
smile = smile_mock.return_value
|
||||
|
||||
smile.gateway_id = "03e65b16e4b247a29ae0d75a78cb492e"
|
||||
smile.heater_id = None
|
||||
smile.smile_version = "4.4.2"
|
||||
smile.smile_type = "power"
|
||||
smile.smile_hostname = "smile98765"
|
||||
smile.smile_model = "Gateway"
|
||||
smile.smile_model_id = "smile"
|
||||
smile.smile_name = "Smile P1"
|
||||
smile.connect.return_value = Version("4.4.2")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
smile.smile_version = "4.4.2"
|
||||
|
||||
yield smile
|
||||
|
||||
@ -320,6 +227,7 @@ def mock_smile_p1_2() -> Generator[MagicMock]:
|
||||
def mock_smile_legacy_anna() -> Generator[MagicMock]:
|
||||
"""Create a Mock legacy Anna environment for testing exceptions."""
|
||||
chosen_env = "legacy_anna"
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
@ -334,7 +242,6 @@ def mock_smile_legacy_anna() -> Generator[MagicMock]:
|
||||
smile.smile_model_id = None
|
||||
smile.smile_name = "Smile Anna"
|
||||
smile.connect.return_value = Version("1.8.22")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
@ -346,6 +253,7 @@ def mock_smile_legacy_anna() -> Generator[MagicMock]:
|
||||
def mock_stretch() -> Generator[MagicMock]:
|
||||
"""Create a Mock Stretch environment for testing exceptions."""
|
||||
chosen_env = "stretch_v31"
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
with patch(
|
||||
"homeassistant.components.plugwise.coordinator.Smile", autospec=True
|
||||
) as smile_mock:
|
||||
@ -360,7 +268,6 @@ def mock_stretch() -> Generator[MagicMock]:
|
||||
smile.smile_model_id = None
|
||||
smile.smile_name = "Stretch"
|
||||
smile.connect.return_value = Version("3.1.11")
|
||||
all_data = _read_json(chosen_env, "all_data")
|
||||
smile.async_update.return_value = PlugwiseData(
|
||||
all_data["devices"], all_data["gateway"]
|
||||
)
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
import pytest
|
||||
|
||||
from homeassistant.const import STATE_OFF, STATE_ON
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_component import async_update_entity
|
||||
@ -9,32 +11,30 @@ from homeassistant.helpers.entity_component import async_update_entity
|
||||
from tests.common import MockConfigEntry
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
("entity_id", "expected_state"),
|
||||
[
|
||||
("binary_sensor.opentherm_secondary_boiler_state", STATE_OFF),
|
||||
("binary_sensor.opentherm_dhw_state", STATE_OFF),
|
||||
("binary_sensor.opentherm_heating", STATE_ON),
|
||||
("binary_sensor.opentherm_cooling_enabled", STATE_OFF),
|
||||
("binary_sensor.opentherm_compressor_state", STATE_ON),
|
||||
],
|
||||
)
|
||||
async def test_anna_climate_binary_sensor_entities(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
hass: HomeAssistant,
|
||||
mock_smile_anna: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
entity_id: str,
|
||||
expected_state: str,
|
||||
) -> None:
|
||||
"""Test creation of climate related binary_sensor entities."""
|
||||
|
||||
state = hass.states.get("binary_sensor.opentherm_secondary_boiler_state")
|
||||
assert state
|
||||
assert state.state == STATE_OFF
|
||||
|
||||
state = hass.states.get("binary_sensor.opentherm_dhw_state")
|
||||
assert state
|
||||
assert state.state == STATE_OFF
|
||||
|
||||
state = hass.states.get("binary_sensor.opentherm_heating")
|
||||
assert state
|
||||
assert state.state == STATE_ON
|
||||
|
||||
state = hass.states.get("binary_sensor.opentherm_cooling_enabled")
|
||||
assert state
|
||||
assert state.state == STATE_OFF
|
||||
|
||||
state = hass.states.get("binary_sensor.opentherm_compressor_state")
|
||||
assert state
|
||||
assert state.state == STATE_ON
|
||||
state = hass.states.get(entity_id)
|
||||
assert state.state == expected_state
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
async def test_anna_climate_binary_sensor_change(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
@ -66,8 +66,12 @@ async def test_adam_climate_binary_sensor_change(
|
||||
assert not state.attributes.get("other_msg")
|
||||
|
||||
|
||||
async def test_p1_v4_binary_sensor_entity(
|
||||
hass: HomeAssistant, mock_smile_p1_2: MagicMock, init_integration: MockConfigEntry
|
||||
@pytest.mark.parametrize("chosen_env", ["p1v4_442_triple"], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
"gateway_id", ["03e65b16e4b247a29ae0d75a78cb492e"], indirect=True
|
||||
)
|
||||
async def test_p1_binary_sensor_entity(
|
||||
hass: HomeAssistant, mock_smile_p1: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
"""Test of a Smile P1 related plugwise-notification binary_sensor."""
|
||||
state = hass.states.get("binary_sensor.smile_p1_plugwise_notification")
|
||||
|
@ -79,8 +79,11 @@ async def test_adam_climate_entity_attributes(
|
||||
assert state.attributes[ATTR_TARGET_TEMP_STEP] == 0.1
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_heating"], indirect=True)
|
||||
async def test_adam_2_climate_entity_attributes(
|
||||
hass: HomeAssistant, mock_smile_adam_2: MagicMock, init_integration: MockConfigEntry
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_heat_cool: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test creation of adam climate device environment."""
|
||||
state = hass.states.get("climate.living_room")
|
||||
@ -104,9 +107,10 @@ async def test_adam_2_climate_entity_attributes(
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_cooling"], indirect=True)
|
||||
async def test_adam_3_climate_entity_attributes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_3: MagicMock,
|
||||
mock_smile_adam_heat_cool: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
freezer: FrozenDateTimeFactory,
|
||||
) -> None:
|
||||
@ -120,7 +124,7 @@ async def test_adam_3_climate_entity_attributes(
|
||||
HVACMode.AUTO,
|
||||
HVACMode.COOL,
|
||||
]
|
||||
data = mock_smile_adam_3.async_update.return_value
|
||||
data = mock_smile_adam_heat_cool.async_update.return_value
|
||||
data.devices["da224107914542988a88561b4452b0f6"]["select_regulation_mode"] = (
|
||||
"heating"
|
||||
)
|
||||
@ -148,7 +152,7 @@ async def test_adam_3_climate_entity_attributes(
|
||||
HVACMode.HEAT,
|
||||
]
|
||||
|
||||
data = mock_smile_adam_3.async_update.return_value
|
||||
data = mock_smile_adam_heat_cool.async_update.return_value
|
||||
data.devices["da224107914542988a88561b4452b0f6"]["select_regulation_mode"] = (
|
||||
"cooling"
|
||||
)
|
||||
@ -266,7 +270,7 @@ async def test_adam_climate_entity_climate_changes(
|
||||
|
||||
async def test_adam_climate_off_mode_change(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_4: MagicMock,
|
||||
mock_smile_adam_jip: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test handling of user requests in adam climate device environment."""
|
||||
@ -282,9 +286,9 @@ async def test_adam_climate_off_mode_change(
|
||||
},
|
||||
blocking=True,
|
||||
)
|
||||
assert mock_smile_adam_4.set_schedule_state.call_count == 1
|
||||
assert mock_smile_adam_4.set_regulation_mode.call_count == 1
|
||||
mock_smile_adam_4.set_regulation_mode.assert_called_with("heating")
|
||||
assert mock_smile_adam_jip.set_schedule_state.call_count == 1
|
||||
assert mock_smile_adam_jip.set_regulation_mode.call_count == 1
|
||||
mock_smile_adam_jip.set_regulation_mode.assert_called_with("heating")
|
||||
|
||||
state = hass.states.get("climate.kinderkamer")
|
||||
assert state
|
||||
@ -298,9 +302,9 @@ async def test_adam_climate_off_mode_change(
|
||||
},
|
||||
blocking=True,
|
||||
)
|
||||
assert mock_smile_adam_4.set_schedule_state.call_count == 1
|
||||
assert mock_smile_adam_4.set_regulation_mode.call_count == 2
|
||||
mock_smile_adam_4.set_regulation_mode.assert_called_with("off")
|
||||
assert mock_smile_adam_jip.set_schedule_state.call_count == 1
|
||||
assert mock_smile_adam_jip.set_regulation_mode.call_count == 2
|
||||
mock_smile_adam_jip.set_regulation_mode.assert_called_with("off")
|
||||
|
||||
state = hass.states.get("climate.logeerkamer")
|
||||
assert state
|
||||
@ -314,10 +318,11 @@ async def test_adam_climate_off_mode_change(
|
||||
},
|
||||
blocking=True,
|
||||
)
|
||||
assert mock_smile_adam_4.set_schedule_state.call_count == 1
|
||||
assert mock_smile_adam_4.set_regulation_mode.call_count == 2
|
||||
assert mock_smile_adam_jip.set_schedule_state.call_count == 1
|
||||
assert mock_smile_adam_jip.set_regulation_mode.call_count == 2
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
async def test_anna_climate_entity_attributes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_anna: MagicMock,
|
||||
@ -343,9 +348,10 @@ async def test_anna_climate_entity_attributes(
|
||||
assert state.attributes[ATTR_TARGET_TEMP_STEP] == 0.1
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_anna_heatpump_cooling"], indirect=True)
|
||||
async def test_anna_2_climate_entity_attributes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_anna_2: MagicMock,
|
||||
mock_smile_anna: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test creation of anna climate device environment."""
|
||||
@ -362,9 +368,10 @@ async def test_anna_2_climate_entity_attributes(
|
||||
assert state.attributes[ATTR_TARGET_TEMP_LOW] == 20.5
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_anna_heatpump_idle"], indirect=True)
|
||||
async def test_anna_3_climate_entity_attributes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_anna_3: MagicMock,
|
||||
mock_smile_anna: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test creation of anna climate device environment."""
|
||||
@ -378,6 +385,7 @@ async def test_anna_3_climate_entity_attributes(
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
async def test_anna_climate_entity_climate_changes(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_anna: MagicMock,
|
||||
|
@ -61,6 +61,7 @@ TOM = {
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
async def test_load_unload_config_entry(
|
||||
hass: HomeAssistant,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
@ -80,6 +81,7 @@ async def test_load_unload_config_entry(
|
||||
assert mock_config_entry.state is ConfigEntryState.NOT_LOADED
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
("side_effect", "entry_state"),
|
||||
[
|
||||
@ -109,6 +111,10 @@ async def test_gateway_config_entry_not_ready(
|
||||
assert mock_config_entry.state is entry_state
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["p1v4_442_single"], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
"gateway_id", ["a455b61e52394b2db5081ce025a430f3"], indirect=True
|
||||
)
|
||||
async def test_device_in_dr(
|
||||
hass: HomeAssistant,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
@ -131,6 +137,7 @@ async def test_device_in_dr(
|
||||
assert device_entry.sw_version == "4.4.2"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
("entitydata", "old_unique_id", "new_unique_id"),
|
||||
[
|
||||
@ -224,16 +231,17 @@ async def test_migrate_unique_id_relay(
|
||||
assert entity_migrated.unique_id == new_unique_id
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_heating"], indirect=True)
|
||||
async def test_update_device(
|
||||
hass: HomeAssistant,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
mock_smile_adam_2: MagicMock,
|
||||
mock_smile_adam_heat_cool: MagicMock,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
freezer: FrozenDateTimeFactory,
|
||||
) -> None:
|
||||
"""Test a clean-up of the device_registry."""
|
||||
data = mock_smile_adam_2.async_update.return_value
|
||||
data = mock_smile_adam_heat_cool.async_update.return_value
|
||||
|
||||
mock_config_entry.add_to_hass(hass)
|
||||
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
||||
|
@ -16,6 +16,7 @@ from homeassistant.exceptions import ServiceValidationError
|
||||
from tests.common import MockConfigEntry
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
async def test_anna_number_entities(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
@ -25,6 +26,7 @@ async def test_anna_number_entities(
|
||||
assert float(state.state) == 60.0
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
async def test_anna_max_boiler_temp_change(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
@ -45,19 +47,17 @@ async def test_anna_max_boiler_temp_change(
|
||||
)
|
||||
|
||||
|
||||
async def test_adam_number_entities(
|
||||
hass: HomeAssistant, mock_smile_adam_2: MagicMock, init_integration: MockConfigEntry
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_heating"], indirect=True)
|
||||
async def test_adam_dhw_setpoint_change(
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_heat_cool: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test creation of a number."""
|
||||
"""Test changing of number entities."""
|
||||
state = hass.states.get("number.opentherm_domestic_hot_water_setpoint")
|
||||
assert state
|
||||
assert float(state.state) == 60.0
|
||||
|
||||
|
||||
async def test_adam_dhw_setpoint_change(
|
||||
hass: HomeAssistant, mock_smile_adam_2: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
"""Test changing of number entities."""
|
||||
await hass.services.async_call(
|
||||
NUMBER_DOMAIN,
|
||||
SERVICE_SET_VALUE,
|
||||
@ -68,8 +68,8 @@ async def test_adam_dhw_setpoint_change(
|
||||
blocking=True,
|
||||
)
|
||||
|
||||
assert mock_smile_adam_2.set_number.call_count == 1
|
||||
mock_smile_adam_2.set_number.assert_called_with(
|
||||
assert mock_smile_adam_heat_cool.set_number.call_count == 1
|
||||
mock_smile_adam_heat_cool.set_number.assert_called_with(
|
||||
"056ee145a816487eaa69243c3280f8bf", "max_dhw_temperature", 55.0
|
||||
)
|
||||
|
||||
|
@ -50,8 +50,11 @@ async def test_adam_change_select_entity(
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["m_adam_cooling"], indirect=True)
|
||||
async def test_adam_select_regulation_mode(
|
||||
hass: HomeAssistant, mock_smile_adam_3: MagicMock, init_integration: MockConfigEntry
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_heat_cool: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test a regulation_mode select.
|
||||
|
||||
@ -73,8 +76,8 @@ async def test_adam_select_regulation_mode(
|
||||
},
|
||||
blocking=True,
|
||||
)
|
||||
assert mock_smile_adam_3.set_select.call_count == 1
|
||||
mock_smile_adam_3.set_select.assert_called_with(
|
||||
assert mock_smile_adam_heat_cool.set_select.call_count == 1
|
||||
mock_smile_adam_heat_cool.set_select.assert_called_with(
|
||||
"select_regulation_mode",
|
||||
"bc93488efab249e5bc54fd7e175a6f91",
|
||||
"heating",
|
||||
@ -91,6 +94,7 @@ async def test_legacy_anna_select_entities(
|
||||
assert not hass.states.get("select.anna_thermostat_schedule")
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
async def test_adam_select_unavailable_regulation_mode(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
|
@ -41,7 +41,9 @@ async def test_adam_climate_sensor_entities(
|
||||
|
||||
|
||||
async def test_adam_climate_sensor_entity_2(
|
||||
hass: HomeAssistant, mock_smile_adam_4: MagicMock, init_integration: MockConfigEntry
|
||||
hass: HomeAssistant,
|
||||
mock_smile_adam_jip: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test creation of climate related sensor entities."""
|
||||
state = hass.states.get("sensor.woonkamer_humidity")
|
||||
@ -52,7 +54,7 @@ async def test_adam_climate_sensor_entity_2(
|
||||
async def test_unique_id_migration_humidity(
|
||||
hass: HomeAssistant,
|
||||
entity_registry: er.EntityRegistry,
|
||||
mock_smile_adam_4: MagicMock,
|
||||
mock_smile_adam_jip: MagicMock,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test unique ID migration of -relative_humidity to -humidity."""
|
||||
@ -92,6 +94,7 @@ async def test_unique_id_migration_humidity(
|
||||
assert entity_entry.unique_id == "f61f1a2535f54f52ad006a3d18e459ca-battery"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
||||
async def test_anna_as_smt_climate_sensor_entities(
|
||||
hass: HomeAssistant, mock_smile_anna: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
@ -113,6 +116,10 @@ async def test_anna_as_smt_climate_sensor_entities(
|
||||
assert float(state.state) == 86.0
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["p1v4_442_single"], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
"gateway_id", ["a455b61e52394b2db5081ce025a430f3"], indirect=True
|
||||
)
|
||||
async def test_p1_dsmr_sensor_entities(
|
||||
hass: HomeAssistant, mock_smile_p1: MagicMock, init_integration: MockConfigEntry
|
||||
) -> None:
|
||||
@ -137,11 +144,15 @@ async def test_p1_dsmr_sensor_entities(
|
||||
assert not state
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["p1v4_442_triple"], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
"gateway_id", ["03e65b16e4b247a29ae0d75a78cb492e"], indirect=True
|
||||
)
|
||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||
async def test_p1_3ph_dsmr_sensor_entities(
|
||||
hass: HomeAssistant,
|
||||
entity_registry: er.EntityRegistry,
|
||||
mock_smile_p1_2: MagicMock,
|
||||
mock_smile_p1: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test creation of power related sensor entities."""
|
||||
@ -163,10 +174,14 @@ async def test_p1_3ph_dsmr_sensor_entities(
|
||||
assert float(state.state) == 233.2
|
||||
|
||||
|
||||
@pytest.mark.parametrize("chosen_env", ["p1v4_442_triple"], indirect=True)
|
||||
@pytest.mark.parametrize(
|
||||
"gateway_id", ["03e65b16e4b247a29ae0d75a78cb492e"], indirect=True
|
||||
)
|
||||
async def test_p1_3ph_dsmr_sensor_disabled_entities(
|
||||
hass: HomeAssistant,
|
||||
entity_registry: er.EntityRegistry,
|
||||
mock_smile_p1_2: MagicMock,
|
||||
mock_smile_p1: MagicMock,
|
||||
init_integration: MockConfigEntry,
|
||||
) -> None:
|
||||
"""Test disabled power related sensor entities intent."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user