mirror of
https://github.com/home-assistant/core.git
synced 2025-11-10 11:29:46 +00:00
Support None schema in EntityComponent.async_register_entity_service (#123867)
This commit is contained in:
@@ -495,7 +495,19 @@ async def test_extract_all_use_match_all(
|
||||
) not in caplog.text
|
||||
|
||||
|
||||
async def test_register_entity_service(hass: HomeAssistant) -> None:
|
||||
@pytest.mark.parametrize(
|
||||
("schema", "service_data"),
|
||||
[
|
||||
({"some": str}, {"some": "data"}),
|
||||
({}, {}),
|
||||
(None, {}),
|
||||
],
|
||||
)
|
||||
async def test_register_entity_service(
|
||||
hass: HomeAssistant,
|
||||
schema: dict | None,
|
||||
service_data: dict,
|
||||
) -> None:
|
||||
"""Test registering an enttiy service and calling it."""
|
||||
entity = MockEntity(entity_id=f"{DOMAIN}.entity")
|
||||
calls = []
|
||||
@@ -510,9 +522,7 @@ async def test_register_entity_service(hass: HomeAssistant) -> None:
|
||||
await component.async_setup({})
|
||||
await component.async_add_entities([entity])
|
||||
|
||||
component.async_register_entity_service(
|
||||
"hello", {"some": str}, "async_called_by_service"
|
||||
)
|
||||
component.async_register_entity_service("hello", schema, "async_called_by_service")
|
||||
|
||||
with pytest.raises(vol.Invalid):
|
||||
await hass.services.async_call(
|
||||
@@ -524,24 +534,24 @@ async def test_register_entity_service(hass: HomeAssistant) -> None:
|
||||
assert len(calls) == 0
|
||||
|
||||
await hass.services.async_call(
|
||||
DOMAIN, "hello", {"entity_id": entity.entity_id, "some": "data"}, blocking=True
|
||||
DOMAIN, "hello", {"entity_id": entity.entity_id} | service_data, blocking=True
|
||||
)
|
||||
assert len(calls) == 1
|
||||
assert calls[0] == {"some": "data"}
|
||||
assert calls[0] == service_data
|
||||
|
||||
await hass.services.async_call(
|
||||
DOMAIN, "hello", {"entity_id": ENTITY_MATCH_ALL, "some": "data"}, blocking=True
|
||||
DOMAIN, "hello", {"entity_id": ENTITY_MATCH_ALL} | service_data, blocking=True
|
||||
)
|
||||
assert len(calls) == 2
|
||||
assert calls[1] == {"some": "data"}
|
||||
assert calls[1] == service_data
|
||||
|
||||
await hass.services.async_call(
|
||||
DOMAIN, "hello", {"entity_id": ENTITY_MATCH_NONE, "some": "data"}, blocking=True
|
||||
DOMAIN, "hello", {"entity_id": ENTITY_MATCH_NONE} | service_data, blocking=True
|
||||
)
|
||||
assert len(calls) == 2
|
||||
|
||||
await hass.services.async_call(
|
||||
DOMAIN, "hello", {"area_id": ENTITY_MATCH_NONE, "some": "data"}, blocking=True
|
||||
DOMAIN, "hello", {"area_id": ENTITY_MATCH_NONE} | service_data, blocking=True
|
||||
)
|
||||
assert len(calls) == 2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user