From f1c5e756ff159877a7a2fc842c95e6fe670fabca Mon Sep 17 00:00:00 2001 From: cdce8p <30130371+cdce8p@users.noreply.github.com> Date: Thu, 29 Nov 2018 20:16:39 +0100 Subject: [PATCH] Fix logbook domain filter - alexa, homekit (#18790) --- homeassistant/components/logbook.py | 6 ++++++ tests/components/test_logbook.py | 27 +++++++++++++++++++++------ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/logbook.py b/homeassistant/components/logbook.py index c7a37411f1e..b6f434a82ad 100644 --- a/homeassistant/components/logbook.py +++ b/homeassistant/components/logbook.py @@ -445,6 +445,12 @@ def _exclude_events(events, entities_filter): domain = event.data.get(ATTR_DOMAIN) entity_id = event.data.get(ATTR_ENTITY_ID) + elif event.event_type == EVENT_ALEXA_SMART_HOME: + domain = 'alexa' + + elif event.event_type == EVENT_HOMEKIT_CHANGED: + domain = DOMAIN_HOMEKIT + if not entity_id and domain: entity_id = "%s." % (domain, ) diff --git a/tests/components/test_logbook.py b/tests/components/test_logbook.py index ae1e3d1d51a..0d204773241 100644 --- a/tests/components/test_logbook.py +++ b/tests/components/test_logbook.py @@ -242,9 +242,11 @@ class TestComponentLogbook(unittest.TestCase): config = logbook.CONFIG_SCHEMA({ ha.DOMAIN: {}, logbook.DOMAIN: {logbook.CONF_EXCLUDE: { - logbook.CONF_DOMAINS: ['switch', ]}}}) + logbook.CONF_DOMAINS: ['switch', 'alexa', DOMAIN_HOMEKIT]}}}) events = logbook._exclude_events( - (ha.Event(EVENT_HOMEASSISTANT_START), eventA, eventB), + (ha.Event(EVENT_HOMEASSISTANT_START), + ha.Event(EVENT_ALEXA_SMART_HOME), + ha.Event(EVENT_HOMEKIT_CHANGED), eventA, eventB), logbook._generate_filter_from_config(config[logbook.DOMAIN])) entries = list(logbook.humanify(self.hass, events)) @@ -325,22 +327,35 @@ class TestComponentLogbook(unittest.TestCase): pointA = dt_util.utcnow() pointB = pointA + timedelta(minutes=logbook.GROUP_BY_MINUTES) + event_alexa = ha.Event(EVENT_ALEXA_SMART_HOME, {'request': { + 'namespace': 'Alexa.Discovery', + 'name': 'Discover', + }}) + event_homekit = ha.Event(EVENT_HOMEKIT_CHANGED, { + ATTR_ENTITY_ID: 'lock.front_door', + ATTR_DISPLAY_NAME: 'Front Door', + ATTR_SERVICE: 'lock', + }) + eventA = self.create_state_changed_event(pointA, entity_id, 10) eventB = self.create_state_changed_event(pointB, entity_id2, 20) config = logbook.CONFIG_SCHEMA({ ha.DOMAIN: {}, logbook.DOMAIN: {logbook.CONF_INCLUDE: { - logbook.CONF_DOMAINS: ['sensor', ]}}}) + logbook.CONF_DOMAINS: ['sensor', 'alexa', DOMAIN_HOMEKIT]}}}) events = logbook._exclude_events( - (ha.Event(EVENT_HOMEASSISTANT_START), eventA, eventB), + (ha.Event(EVENT_HOMEASSISTANT_START), + event_alexa, event_homekit, eventA, eventB), logbook._generate_filter_from_config(config[logbook.DOMAIN])) entries = list(logbook.humanify(self.hass, events)) - assert 2 == len(entries) + assert 4 == len(entries) self.assert_entry(entries[0], name='Home Assistant', message='started', domain=ha.DOMAIN) - self.assert_entry(entries[1], pointB, 'blu', domain='sensor', + self.assert_entry(entries[1], name='Amazon Alexa', domain='alexa') + self.assert_entry(entries[2], name='HomeKit', domain=DOMAIN_HOMEKIT) + self.assert_entry(entries[3], pointB, 'blu', domain='sensor', entity_id=entity_id2) def test_include_exclude_events(self):