mirror of
https://github.com/home-assistant/core.git
synced 2025-07-07 21:37:07 +00:00
Fix event trigger (#39884)
Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
parent
f0295d562d
commit
36f52a26f6
@ -28,11 +28,15 @@ async def async_attach_trigger(
|
||||
):
|
||||
"""Listen for events based on configuration."""
|
||||
event_type = config.get(CONF_EVENT_TYPE)
|
||||
event_data_schema = (
|
||||
vol.Schema(config.get(CONF_EVENT_DATA), extra=vol.ALLOW_EXTRA)
|
||||
if config.get(CONF_EVENT_DATA)
|
||||
else None
|
||||
)
|
||||
event_data_schema = None
|
||||
if config.get(CONF_EVENT_DATA):
|
||||
event_data_schema = vol.Schema(
|
||||
{
|
||||
vol.Required(key): value
|
||||
for key, value in config.get(CONF_EVENT_DATA).items()
|
||||
},
|
||||
extra=vol.ALLOW_EXTRA,
|
||||
)
|
||||
|
||||
@callback
|
||||
def handle_event(event):
|
||||
|
@ -84,17 +84,27 @@ async def test_if_fires_on_event_with_data(hass, calls):
|
||||
"trigger": {
|
||||
"platform": "event",
|
||||
"event_type": "test_event",
|
||||
"event_data": {"some_attr": "some_value"},
|
||||
"event_data": {
|
||||
"some_attr": "some_value",
|
||||
"second_attr": "second_value",
|
||||
},
|
||||
},
|
||||
"action": {"service": "test.automation"},
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
hass.bus.async_fire("test_event", {"some_attr": "some_value", "another": "value"})
|
||||
hass.bus.async_fire(
|
||||
"test_event",
|
||||
{"some_attr": "some_value", "another": "value", "second_attr": "second_value"},
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1
|
||||
|
||||
hass.bus.async_fire("test_event", {"some_attr": "some_value", "another": "value"})
|
||||
await hass.async_block_till_done()
|
||||
assert len(calls) == 1 # No new call
|
||||
|
||||
|
||||
async def test_if_fires_on_event_with_empty_data_config(hass, calls):
|
||||
"""Test the firing of events with empty data config.
|
||||
|
Loading…
x
Reference in New Issue
Block a user