mirror of
https://github.com/home-assistant/core.git
synced 2025-07-15 17:27:10 +00:00
Use service_calls fixture in core platform tests [m-z] (#121001)
This commit is contained in:
parent
76a62028ad
commit
22f5f59478
@ -20,11 +20,7 @@ from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||
from homeassistant.helpers.entity_registry import RegistryEntryHider
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from tests.common import (
|
||||
MockConfigEntry,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
from tests.common import MockConfigEntry, async_get_device_automations
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True, name="stub_blueprint_populate")
|
||||
@ -32,12 +28,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_conditions(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -136,7 +126,7 @@ async def test_if_state(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -274,8 +264,8 @@ async def test_if_state(
|
||||
hass.bus.async_fire("test_event5")
|
||||
hass.bus.async_fire("test_event6")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_on - event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_on - event - test_event1"
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
hass.bus.async_fire("test_event1")
|
||||
@ -285,8 +275,8 @@ async def test_if_state(
|
||||
hass.bus.async_fire("test_event5")
|
||||
hass.bus.async_fire("test_event6")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert calls[1].data["some"] == "is_off - event - test_event2"
|
||||
assert len(service_calls) == 2
|
||||
assert service_calls[1].data["some"] == "is_off - event - test_event2"
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_IDLE)
|
||||
hass.bus.async_fire("test_event1")
|
||||
@ -296,8 +286,8 @@ async def test_if_state(
|
||||
hass.bus.async_fire("test_event5")
|
||||
hass.bus.async_fire("test_event6")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 3
|
||||
assert calls[2].data["some"] == "is_idle - event - test_event3"
|
||||
assert len(service_calls) == 3
|
||||
assert service_calls[2].data["some"] == "is_idle - event - test_event3"
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_PAUSED)
|
||||
hass.bus.async_fire("test_event1")
|
||||
@ -307,8 +297,8 @@ async def test_if_state(
|
||||
hass.bus.async_fire("test_event5")
|
||||
hass.bus.async_fire("test_event6")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 4
|
||||
assert calls[3].data["some"] == "is_paused - event - test_event4"
|
||||
assert len(service_calls) == 4
|
||||
assert service_calls[3].data["some"] == "is_paused - event - test_event4"
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_PLAYING)
|
||||
hass.bus.async_fire("test_event1")
|
||||
@ -318,8 +308,8 @@ async def test_if_state(
|
||||
hass.bus.async_fire("test_event5")
|
||||
hass.bus.async_fire("test_event6")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 5
|
||||
assert calls[4].data["some"] == "is_playing - event - test_event5"
|
||||
assert len(service_calls) == 5
|
||||
assert service_calls[4].data["some"] == "is_playing - event - test_event5"
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_BUFFERING)
|
||||
hass.bus.async_fire("test_event1")
|
||||
@ -329,15 +319,15 @@ async def test_if_state(
|
||||
hass.bus.async_fire("test_event5")
|
||||
hass.bus.async_fire("test_event6")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 6
|
||||
assert calls[5].data["some"] == "is_buffering - event - test_event6"
|
||||
assert len(service_calls) == 6
|
||||
assert service_calls[5].data["some"] == "is_buffering - event - test_event6"
|
||||
|
||||
|
||||
async def test_if_state_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -380,5 +370,5 @@ async def test_if_state_legacy(
|
||||
)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_on - event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_on - event - test_event1"
|
||||
|
@ -28,7 +28,6 @@ from tests.common import (
|
||||
async_fire_time_changed,
|
||||
async_get_device_automation_capabilities,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
|
||||
|
||||
@ -37,12 +36,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_triggers(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -209,7 +202,7 @@ async def test_if_fires_on_state_change(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -265,8 +258,8 @@ async def test_if_fires_on_state_change(
|
||||
# Fake that the entity is turning on.
|
||||
hass.states.async_set(entry.entity_id, STATE_ON)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert {calls[0].data["some"], calls[1].data["some"]} == {
|
||||
assert len(service_calls) == 2
|
||||
assert {service_calls[0].data["some"], service_calls[1].data["some"]} == {
|
||||
"turned_on - device - media_player.test_5678 - off - on - None",
|
||||
"changed_states - device - media_player.test_5678 - off - on - None",
|
||||
}
|
||||
@ -274,8 +267,8 @@ async def test_if_fires_on_state_change(
|
||||
# Fake that the entity is turning off.
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 4
|
||||
assert {calls[2].data["some"], calls[3].data["some"]} == {
|
||||
assert len(service_calls) == 4
|
||||
assert {service_calls[2].data["some"], service_calls[3].data["some"]} == {
|
||||
"turned_off - device - media_player.test_5678 - on - off - None",
|
||||
"changed_states - device - media_player.test_5678 - on - off - None",
|
||||
}
|
||||
@ -283,8 +276,8 @@ async def test_if_fires_on_state_change(
|
||||
# Fake that the entity becomes idle.
|
||||
hass.states.async_set(entry.entity_id, STATE_IDLE)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 6
|
||||
assert {calls[4].data["some"], calls[5].data["some"]} == {
|
||||
assert len(service_calls) == 6
|
||||
assert {service_calls[4].data["some"], service_calls[5].data["some"]} == {
|
||||
"idle - device - media_player.test_5678 - off - idle - None",
|
||||
"changed_states - device - media_player.test_5678 - off - idle - None",
|
||||
}
|
||||
@ -292,8 +285,8 @@ async def test_if_fires_on_state_change(
|
||||
# Fake that the entity starts playing.
|
||||
hass.states.async_set(entry.entity_id, STATE_PLAYING)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 8
|
||||
assert {calls[6].data["some"], calls[7].data["some"]} == {
|
||||
assert len(service_calls) == 8
|
||||
assert {service_calls[6].data["some"], service_calls[7].data["some"]} == {
|
||||
"playing - device - media_player.test_5678 - idle - playing - None",
|
||||
"changed_states - device - media_player.test_5678 - idle - playing - None",
|
||||
}
|
||||
@ -301,8 +294,8 @@ async def test_if_fires_on_state_change(
|
||||
# Fake that the entity is paused.
|
||||
hass.states.async_set(entry.entity_id, STATE_PAUSED)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 10
|
||||
assert {calls[8].data["some"], calls[9].data["some"]} == {
|
||||
assert len(service_calls) == 10
|
||||
assert {service_calls[8].data["some"], service_calls[9].data["some"]} == {
|
||||
"paused - device - media_player.test_5678 - playing - paused - None",
|
||||
"changed_states - device - media_player.test_5678 - playing - paused - None",
|
||||
}
|
||||
@ -310,8 +303,8 @@ async def test_if_fires_on_state_change(
|
||||
# Fake that the entity is buffering.
|
||||
hass.states.async_set(entry.entity_id, STATE_BUFFERING)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 12
|
||||
assert {calls[10].data["some"], calls[11].data["some"]} == {
|
||||
assert len(service_calls) == 12
|
||||
assert {service_calls[10].data["some"], service_calls[11].data["some"]} == {
|
||||
"buffering - device - media_player.test_5678 - paused - buffering - None",
|
||||
"changed_states - device - media_player.test_5678 - paused - buffering - None",
|
||||
}
|
||||
@ -321,7 +314,7 @@ async def test_if_fires_on_state_change_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -369,9 +362,9 @@ async def test_if_fires_on_state_change_legacy(
|
||||
# Fake that the entity is turning on.
|
||||
hass.states.async_set(entry.entity_id, STATE_ON)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== "turned_on - device - media_player.test_5678 - off - on - None"
|
||||
)
|
||||
|
||||
@ -380,7 +373,7 @@ async def test_if_fires_on_state_change_with_for(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for triggers firing with delay."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -426,16 +419,16 @@ async def test_if_fires_on_state_change_with_for(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_ON)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(seconds=10))
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
await hass.async_block_till_done()
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"turn_off device - {entry.entity_id} - off - on - 0:00:05"
|
||||
)
|
||||
|
@ -7,7 +7,7 @@ from homeassistant.components import automation
|
||||
from homeassistant.components.device_automation import DeviceAutomationType
|
||||
from homeassistant.components.remote import DOMAIN
|
||||
from homeassistant.const import EntityCategory
|
||||
from homeassistant.core import HomeAssistant, ServiceCall
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||
from homeassistant.helpers.entity_registry import RegistryEntryHider
|
||||
from homeassistant.setup import async_setup_component
|
||||
@ -24,12 +24,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_actions(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -114,7 +108,6 @@ async def test_action(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off actions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -189,7 +182,6 @@ async def test_action_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off actions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
|
@ -20,7 +20,6 @@ from tests.common import (
|
||||
MockConfigEntry,
|
||||
async_get_device_automation_capabilities,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
|
||||
|
||||
@ -29,12 +28,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_conditions(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -183,7 +176,7 @@ async def test_if_state(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -249,20 +242,20 @@ async def test_if_state(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_on event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_on event - test_event1"
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert calls[1].data["some"] == "is_off event - test_event2"
|
||||
assert len(service_calls) == 2
|
||||
assert service_calls[1].data["some"] == "is_off event - test_event2"
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("enable_custom_integrations")
|
||||
@ -270,7 +263,7 @@ async def test_if_state_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -315,13 +308,13 @@ async def test_if_state_legacy(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_on event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_on event - test_event1"
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("enable_custom_integrations")
|
||||
@ -329,7 +322,7 @@ async def test_if_fires_on_for_condition(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for firing if condition is on with delay."""
|
||||
point1 = dt_util.utcnow()
|
||||
@ -378,26 +371,26 @@ async def test_if_fires_on_for_condition(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
# Time travel 10 secs into the future
|
||||
freezer.move_to(point2)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
# Time travel 20 secs into the future
|
||||
freezer.move_to(point3)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_off event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_off event - test_event1"
|
||||
|
@ -20,7 +20,6 @@ from tests.common import (
|
||||
async_fire_time_changed,
|
||||
async_get_device_automation_capabilities,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
|
||||
|
||||
@ -29,12 +28,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_triggers(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -181,7 +174,7 @@ async def test_if_fires_on_state_change(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -267,20 +260,20 @@ async def test_if_fires_on_state_change(
|
||||
]
|
||||
},
|
||||
)
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert {calls[0].data["some"], calls[1].data["some"]} == {
|
||||
assert len(service_calls) == 2
|
||||
assert {service_calls[0].data["some"], service_calls[1].data["some"]} == {
|
||||
f"turn_off device - {entry.entity_id} - on - off - None",
|
||||
f"turn_on_or_off device - {entry.entity_id} - on - off - None",
|
||||
}
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_ON)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 4
|
||||
assert {calls[2].data["some"], calls[3].data["some"]} == {
|
||||
assert len(service_calls) == 4
|
||||
assert {service_calls[2].data["some"], service_calls[3].data["some"]} == {
|
||||
f"turn_on device - {entry.entity_id} - off - on - None",
|
||||
f"turn_on_or_off device - {entry.entity_id} - off - on - None",
|
||||
}
|
||||
@ -291,7 +284,7 @@ async def test_if_fires_on_state_change_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -335,13 +328,13 @@ async def test_if_fires_on_state_change_legacy(
|
||||
]
|
||||
},
|
||||
)
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"turn_off device - {entry.entity_id} - on - off - None"
|
||||
)
|
||||
|
||||
@ -351,7 +344,7 @@ async def test_if_fires_on_state_change_with_for(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for triggers firing with delay."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -397,16 +390,16 @@ async def test_if_fires_on_state_change_with_for(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(seconds=10))
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
await hass.async_block_till_done()
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"turn_off device - {entry.entity_id} - on - off - 0:00:05"
|
||||
)
|
||||
|
@ -21,17 +21,7 @@ from homeassistant.helpers import (
|
||||
)
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from tests.common import (
|
||||
MockConfigEntry,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
from tests.common import MockConfigEntry, async_get_device_automations
|
||||
|
||||
|
||||
async def test_get_conditions(
|
||||
@ -115,7 +105,7 @@ async def test_get_conditions_hidden_auxiliary(
|
||||
|
||||
async def test_if_selected_option(
|
||||
hass: HomeAssistant,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
) -> None:
|
||||
@ -181,7 +171,7 @@ async def test_if_selected_option(
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(
|
||||
entry.entity_id, "option1", {"options": ["option1", "option2"]}
|
||||
@ -189,8 +179,8 @@ async def test_if_selected_option(
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["result"] == "option1 - event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["result"] == "option1 - event - test_event1"
|
||||
|
||||
hass.states.async_set(
|
||||
entry.entity_id, "option2", {"options": ["option1", "option2"]}
|
||||
@ -198,13 +188,13 @@ async def test_if_selected_option(
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert calls[1].data["result"] == "option2 - event - test_event2"
|
||||
assert len(service_calls) == 2
|
||||
assert service_calls[1].data["result"] == "option2 - event - test_event2"
|
||||
|
||||
|
||||
async def test_if_selected_option_legacy(
|
||||
hass: HomeAssistant,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
) -> None:
|
||||
@ -252,8 +242,8 @@ async def test_if_selected_option_legacy(
|
||||
)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["result"] == "option1 - event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["result"] == "option1 - event - test_event1"
|
||||
|
||||
|
||||
async def test_get_condition_capabilities(
|
||||
|
@ -21,17 +21,7 @@ from homeassistant.helpers import (
|
||||
)
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from tests.common import (
|
||||
MockConfigEntry,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
from tests.common import MockConfigEntry, async_get_device_automations
|
||||
|
||||
|
||||
async def test_get_triggers(
|
||||
@ -117,7 +107,7 @@ async def test_if_fires_on_state_change(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -210,27 +200,27 @@ async def test_if_fires_on_state_change(
|
||||
# Test triggering device trigger with a to state
|
||||
hass.states.async_set(entry.entity_id, "option2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"to - device - {entry.entity_id} - option1 - option2 - None - 0"
|
||||
)
|
||||
|
||||
# Test triggering device trigger with a from state
|
||||
hass.states.async_set(entry.entity_id, "option3")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert len(service_calls) == 2
|
||||
assert (
|
||||
calls[1].data["some"]
|
||||
service_calls[1].data["some"]
|
||||
== f"from - device - {entry.entity_id} - option2 - option3 - None - 0"
|
||||
)
|
||||
|
||||
# Test triggering device trigger with both a from and to state
|
||||
hass.states.async_set(entry.entity_id, "option1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 3
|
||||
assert len(service_calls) == 3
|
||||
assert (
|
||||
calls[2].data["some"]
|
||||
service_calls[2].data["some"]
|
||||
== f"from-to - device - {entry.entity_id} - option3 - option1 - None - 0"
|
||||
)
|
||||
|
||||
@ -239,7 +229,7 @@ async def test_if_fires_on_state_change_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -289,9 +279,9 @@ async def test_if_fires_on_state_change_legacy(
|
||||
# Test triggering device trigger with a to state
|
||||
hass.states.async_set(entry.entity_id, "option2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"to - device - {entry.entity_id} - option1 - option2 - None - 0"
|
||||
)
|
||||
|
||||
|
@ -27,7 +27,6 @@ from tests.common import (
|
||||
MockConfigEntry,
|
||||
async_get_device_automation_capabilities,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
setup_test_component_platform,
|
||||
)
|
||||
|
||||
@ -37,12 +36,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"device_class",
|
||||
[
|
||||
@ -470,7 +463,6 @@ async def test_if_state_not_above_below(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
caplog: pytest.LogCaptureFixture,
|
||||
) -> None:
|
||||
"""Test for bad value conditions."""
|
||||
@ -513,7 +505,7 @@ async def test_if_state_above(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for value conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -559,22 +551,22 @@ async def test_if_state_above(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 9)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 11)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "event - test_event1"
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("enable_custom_integrations")
|
||||
@ -582,7 +574,7 @@ async def test_if_state_above_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for value conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -628,22 +620,22 @@ async def test_if_state_above_legacy(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 9)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 11)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "event - test_event1"
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("enable_custom_integrations")
|
||||
@ -651,7 +643,7 @@ async def test_if_state_below(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for value conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -697,22 +689,22 @@ async def test_if_state_below(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 11)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 9)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "event - test_event1"
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("enable_custom_integrations")
|
||||
@ -720,7 +712,7 @@ async def test_if_state_between(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for value conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -767,30 +759,30 @@ async def test_if_state_between(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 9)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 11)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "event - test_event1"
|
||||
|
||||
hass.states.async_set(entry.entity_id, 21)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
|
||||
hass.states.async_set(entry.entity_id, 19)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert calls[1].data["some"] == "event - test_event1"
|
||||
assert len(service_calls) == 2
|
||||
assert service_calls[1].data["some"] == "event - test_event1"
|
||||
|
@ -31,7 +31,6 @@ from tests.common import (
|
||||
async_fire_time_changed,
|
||||
async_get_device_automation_capabilities,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
setup_test_component_platform,
|
||||
)
|
||||
|
||||
@ -41,12 +40,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"device_class",
|
||||
[
|
||||
@ -427,7 +420,6 @@ async def test_if_fires_not_on_above_below(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
caplog: pytest.LogCaptureFixture,
|
||||
) -> None:
|
||||
"""Test for value triggers firing."""
|
||||
@ -467,7 +459,7 @@ async def test_if_fires_on_state_above(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for value triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -513,17 +505,18 @@ async def test_if_fires_on_state_above(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 9)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 11)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"] == f"bat_low device - {entry.entity_id} - 9 - 11 - None"
|
||||
service_calls[0].data["some"]
|
||||
== f"bat_low device - {entry.entity_id} - 9 - 11 - None"
|
||||
)
|
||||
|
||||
|
||||
@ -532,7 +525,7 @@ async def test_if_fires_on_state_below(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for value triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -578,17 +571,18 @@ async def test_if_fires_on_state_below(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 11)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 9)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"] == f"bat_low device - {entry.entity_id} - 11 - 9 - None"
|
||||
service_calls[0].data["some"]
|
||||
== f"bat_low device - {entry.entity_id} - 11 - 9 - None"
|
||||
)
|
||||
|
||||
|
||||
@ -597,7 +591,7 @@ async def test_if_fires_on_state_between(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for value triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -644,28 +638,30 @@ async def test_if_fires_on_state_between(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 9)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 11)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"] == f"bat_low device - {entry.entity_id} - 9 - 11 - None"
|
||||
service_calls[0].data["some"]
|
||||
== f"bat_low device - {entry.entity_id} - 9 - 11 - None"
|
||||
)
|
||||
|
||||
hass.states.async_set(entry.entity_id, 21)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
|
||||
hass.states.async_set(entry.entity_id, 19)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert len(service_calls) == 2
|
||||
assert (
|
||||
calls[1].data["some"] == f"bat_low device - {entry.entity_id} - 21 - 19 - None"
|
||||
service_calls[1].data["some"]
|
||||
== f"bat_low device - {entry.entity_id} - 21 - 19 - None"
|
||||
)
|
||||
|
||||
|
||||
@ -674,7 +670,7 @@ async def test_if_fires_on_state_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for value triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -720,17 +716,18 @@ async def test_if_fires_on_state_legacy(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 9)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 11)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"] == f"bat_low device - {entry.entity_id} - 9 - 11 - None"
|
||||
service_calls[0].data["some"]
|
||||
== f"bat_low device - {entry.entity_id} - 9 - 11 - None"
|
||||
)
|
||||
|
||||
|
||||
@ -739,7 +736,7 @@ async def test_if_fires_on_state_change_with_for(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for triggers firing with delay."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -786,17 +783,17 @@ async def test_if_fires_on_state_change_with_for(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, 10)
|
||||
hass.states.async_set(entry.entity_id, 11)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(seconds=10))
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
await hass.async_block_till_done()
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"turn_off device - {entry.entity_id} - 10 - 11 - 0:00:05"
|
||||
)
|
||||
|
@ -7,7 +7,7 @@ from homeassistant.components import automation
|
||||
from homeassistant.components.device_automation import DeviceAutomationType
|
||||
from homeassistant.components.switch import DOMAIN
|
||||
from homeassistant.const import EntityCategory
|
||||
from homeassistant.core import HomeAssistant, ServiceCall
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||
from homeassistant.helpers.entity_registry import RegistryEntryHider
|
||||
from homeassistant.setup import async_setup_component
|
||||
@ -24,12 +24,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_actions(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -115,7 +109,6 @@ async def test_action(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off actions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -190,7 +183,6 @@ async def test_action_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off actions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
|
@ -20,7 +20,6 @@ from tests.common import (
|
||||
MockConfigEntry,
|
||||
async_get_device_automation_capabilities,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
|
||||
|
||||
@ -29,12 +28,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_conditions(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -183,7 +176,7 @@ async def test_if_state(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -249,20 +242,20 @@ async def test_if_state(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_on event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_on event - test_event1"
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert calls[1].data["some"] == "is_off event - test_event2"
|
||||
assert len(service_calls) == 2
|
||||
assert service_calls[1].data["some"] == "is_off event - test_event2"
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("enable_custom_integrations")
|
||||
@ -270,7 +263,7 @@ async def test_if_state_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -315,12 +308,12 @@ async def test_if_state_legacy(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_on event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_on event - test_event1"
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("enable_custom_integrations")
|
||||
@ -328,7 +321,7 @@ async def test_if_fires_on_for_condition(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for firing if condition is on with delay."""
|
||||
point1 = dt_util.utcnow()
|
||||
@ -377,26 +370,26 @@ async def test_if_fires_on_for_condition(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
# Time travel 10 secs into the future
|
||||
freezer.move_to(point2)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
# Time travel 20 secs into the future
|
||||
freezer.move_to(point3)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_off event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_off event - test_event1"
|
||||
|
@ -20,7 +20,6 @@ from tests.common import (
|
||||
async_fire_time_changed,
|
||||
async_get_device_automation_capabilities,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
|
||||
|
||||
@ -29,12 +28,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_triggers(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -181,7 +174,7 @@ async def test_if_fires_on_state_change(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -268,20 +261,20 @@ async def test_if_fires_on_state_change(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert {calls[0].data["some"], calls[1].data["some"]} == {
|
||||
assert len(service_calls) == 2
|
||||
assert {service_calls[0].data["some"], service_calls[1].data["some"]} == {
|
||||
f"turn_off device - {entry.entity_id} - on - off - None",
|
||||
f"turn_on_or_off device - {entry.entity_id} - on - off - None",
|
||||
}
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_ON)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 4
|
||||
assert {calls[2].data["some"], calls[3].data["some"]} == {
|
||||
assert len(service_calls) == 4
|
||||
assert {service_calls[2].data["some"], service_calls[3].data["some"]} == {
|
||||
f"turn_on device - {entry.entity_id} - off - on - None",
|
||||
f"turn_on_or_off device - {entry.entity_id} - off - on - None",
|
||||
}
|
||||
@ -292,7 +285,7 @@ async def test_if_fires_on_state_change_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -337,13 +330,13 @@ async def test_if_fires_on_state_change_legacy(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"turn_off device - {entry.entity_id} - on - off - None"
|
||||
)
|
||||
|
||||
@ -353,7 +346,7 @@ async def test_if_fires_on_state_change_with_for(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for triggers firing with delay."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -399,16 +392,16 @@ async def test_if_fires_on_state_change_with_for(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(seconds=10))
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
await hass.async_block_till_done()
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"turn_off device - {entry.entity_id} - on - off - 0:00:05"
|
||||
)
|
||||
|
@ -11,8 +11,6 @@ from homeassistant.const import ATTR_ENTITY_ID, SERVICE_TURN_OFF
|
||||
from homeassistant.core import HomeAssistant, ServiceCall
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from tests.common import async_mock_service
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True, name="stub_blueprint_populate")
|
||||
def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
@ -39,14 +37,8 @@ def tag_setup(hass: HomeAssistant, hass_storage: dict[str, Any]):
|
||||
return _storage
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_triggers(
|
||||
hass: HomeAssistant, tag_setup, calls: list[ServiceCall]
|
||||
hass: HomeAssistant, tag_setup, service_calls: list[ServiceCall]
|
||||
) -> None:
|
||||
"""Test tag triggers."""
|
||||
assert await tag_setup()
|
||||
@ -75,9 +67,9 @@ async def test_triggers(
|
||||
await async_scan_tag(hass, "abc123", None)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["message"] == "service called"
|
||||
assert calls[0].data["id"] == 0
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["message"] == "service called"
|
||||
assert service_calls[0].data["id"] == 0
|
||||
|
||||
await hass.services.async_call(
|
||||
automation.DOMAIN,
|
||||
@ -85,15 +77,16 @@ async def test_triggers(
|
||||
{ATTR_ENTITY_ID: "automation.test"},
|
||||
blocking=True,
|
||||
)
|
||||
assert len(service_calls) == 2
|
||||
|
||||
await async_scan_tag(hass, "abc123", None)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 2
|
||||
|
||||
|
||||
async def test_exception_bad_trigger(
|
||||
hass: HomeAssistant, calls: list[ServiceCall], caplog: pytest.LogCaptureFixture
|
||||
hass: HomeAssistant, caplog: pytest.LogCaptureFixture
|
||||
) -> None:
|
||||
"""Test for exception on event triggers firing."""
|
||||
|
||||
@ -117,7 +110,7 @@ async def test_exception_bad_trigger(
|
||||
|
||||
|
||||
async def test_multiple_tags_and_devices_trigger(
|
||||
hass: HomeAssistant, tag_setup, calls: list[ServiceCall]
|
||||
hass: HomeAssistant, tag_setup, service_calls: list[ServiceCall]
|
||||
) -> None:
|
||||
"""Test multiple tags and devices triggers."""
|
||||
assert await tag_setup()
|
||||
@ -158,8 +151,8 @@ async def test_multiple_tags_and_devices_trigger(
|
||||
await async_scan_tag(hass, "def456", device_id="jkl0123")
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(calls) == 4
|
||||
assert calls[0].data["message"] == "service called"
|
||||
assert calls[1].data["message"] == "service called"
|
||||
assert calls[2].data["message"] == "service called"
|
||||
assert calls[3].data["message"] == "service called"
|
||||
assert len(service_calls) == 4
|
||||
assert service_calls[0].data["message"] == "service called"
|
||||
assert service_calls[1].data["message"] == "service called"
|
||||
assert service_calls[2].data["message"] == "service called"
|
||||
assert service_calls[3].data["message"] == "service called"
|
||||
|
@ -21,7 +21,6 @@ from tests.common import (
|
||||
async_fire_time_changed,
|
||||
async_get_device_automation_capabilities,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
setup_test_component_platform,
|
||||
)
|
||||
|
||||
@ -31,12 +30,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_triggers(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -182,7 +175,7 @@ async def test_if_fires_on_state_change(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
mock_update_entities: list[MockUpdateEntity],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
@ -253,21 +246,21 @@ async def test_if_fires_on_state_change(
|
||||
state = hass.states.get("update.update_available")
|
||||
assert state
|
||||
assert state.state == STATE_ON
|
||||
assert not calls
|
||||
assert not service_calls
|
||||
|
||||
hass.states.async_set("update.update_available", STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== "no_update device - update.update_available - on - off - None"
|
||||
)
|
||||
|
||||
hass.states.async_set("update.update_available", STATE_ON)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert len(service_calls) == 2
|
||||
assert (
|
||||
calls[1].data["some"]
|
||||
service_calls[1].data["some"]
|
||||
== "update_available device - update.update_available - off - on - None"
|
||||
)
|
||||
|
||||
@ -276,7 +269,7 @@ async def test_if_fires_on_state_change_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
mock_update_entities: list[MockUpdateEntity],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
@ -326,13 +319,13 @@ async def test_if_fires_on_state_change_legacy(
|
||||
state = hass.states.get("update.update_available")
|
||||
assert state
|
||||
assert state.state == STATE_ON
|
||||
assert not calls
|
||||
assert not service_calls
|
||||
|
||||
hass.states.async_set("update.update_available", STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== "no_update device - update.update_available - on - off - None"
|
||||
)
|
||||
|
||||
@ -341,7 +334,7 @@ async def test_if_fires_on_state_change_with_for(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
mock_update_entities: list[MockUpdateEntity],
|
||||
) -> None:
|
||||
"""Test for triggers firing with delay."""
|
||||
@ -392,16 +385,16 @@ async def test_if_fires_on_state_change_with_for(
|
||||
state = hass.states.get("update.update_available")
|
||||
assert state
|
||||
assert state.state == STATE_ON
|
||||
assert not calls
|
||||
assert not service_calls
|
||||
|
||||
hass.states.async_set("update.update_available", STATE_OFF)
|
||||
await hass.async_block_till_done()
|
||||
assert not calls
|
||||
assert not service_calls
|
||||
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(seconds=10))
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
await hass.async_block_till_done()
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== "turn_off device - update.update_available - on - off - 0:00:05"
|
||||
)
|
||||
|
@ -17,11 +17,7 @@ from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||
from homeassistant.helpers.entity_registry import RegistryEntryHider
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from tests.common import (
|
||||
MockConfigEntry,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
from tests.common import MockConfigEntry, async_get_device_automations
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True, name="stub_blueprint_populate")
|
||||
@ -29,12 +25,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_conditions(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -119,7 +109,7 @@ async def test_if_state(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -181,30 +171,30 @@ async def test_if_state(
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_docked - event - test_event2"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_docked - event - test_event2"
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_CLEANING)
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert calls[1].data["some"] == "is_cleaning - event - test_event1"
|
||||
assert len(service_calls) == 2
|
||||
assert service_calls[1].data["some"] == "is_cleaning - event - test_event1"
|
||||
|
||||
# Returning means it's still cleaning
|
||||
hass.states.async_set(entry.entity_id, STATE_RETURNING)
|
||||
hass.bus.async_fire("test_event1")
|
||||
hass.bus.async_fire("test_event2")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 3
|
||||
assert calls[2].data["some"] == "is_cleaning - event - test_event1"
|
||||
assert len(service_calls) == 3
|
||||
assert service_calls[2].data["some"] == "is_cleaning - event - test_event1"
|
||||
|
||||
|
||||
async def test_if_state_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off conditions."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -247,5 +237,5 @@ async def test_if_state_legacy(
|
||||
)
|
||||
hass.bus.async_fire("test_event1")
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data["some"] == "is_cleaning - event - test_event1"
|
||||
assert len(service_calls) == 1
|
||||
assert service_calls[0].data["some"] == "is_cleaning - event - test_event1"
|
||||
|
@ -20,7 +20,6 @@ from tests.common import (
|
||||
async_fire_time_changed,
|
||||
async_get_device_automation_capabilities,
|
||||
async_get_device_automations,
|
||||
async_mock_service,
|
||||
)
|
||||
|
||||
|
||||
@ -29,12 +28,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
|
||||
"""Stub copying the blueprints to the config folder."""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "test", "automation")
|
||||
|
||||
|
||||
async def test_get_triggers(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
@ -182,7 +175,7 @@ async def test_if_fires_on_state_change(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -247,18 +240,18 @@ async def test_if_fires_on_state_change(
|
||||
# Fake that the entity is cleaning
|
||||
hass.states.async_set(entry.entity_id, STATE_CLEANING)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"cleaning - device - {entry.entity_id} - docked - cleaning"
|
||||
)
|
||||
|
||||
# Fake that the entity is docked
|
||||
hass.states.async_set(entry.entity_id, STATE_DOCKED)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 2
|
||||
assert len(service_calls) == 2
|
||||
assert (
|
||||
calls[1].data["some"]
|
||||
service_calls[1].data["some"]
|
||||
== f"docked - device - {entry.entity_id} - cleaning - docked"
|
||||
)
|
||||
|
||||
@ -267,7 +260,7 @@ async def test_if_fires_on_state_change_legacy(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for turn_on and turn_off triggers firing."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -313,9 +306,9 @@ async def test_if_fires_on_state_change_legacy(
|
||||
# Fake that the entity is cleaning
|
||||
hass.states.async_set(entry.entity_id, STATE_CLEANING)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"cleaning - device - {entry.entity_id} - docked - cleaning"
|
||||
)
|
||||
|
||||
@ -324,7 +317,7 @@ async def test_if_fires_on_state_change_with_for(
|
||||
hass: HomeAssistant,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
entity_registry: er.EntityRegistry,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test for triggers firing with delay."""
|
||||
config_entry = MockConfigEntry(domain="test", data={})
|
||||
@ -370,16 +363,16 @@ async def test_if_fires_on_state_change_with_for(
|
||||
},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
|
||||
hass.states.async_set(entry.entity_id, STATE_CLEANING)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 0
|
||||
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(seconds=10))
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
assert len(service_calls) == 1
|
||||
await hass.async_block_till_done()
|
||||
assert (
|
||||
calls[0].data["some"]
|
||||
service_calls[0].data["some"]
|
||||
== f"turn_off device - {entry.entity_id} - docked - cleaning - 0:00:05"
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user