mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
Filter new entities from logbook (#5402)
This commit is contained in:
parent
5dd45efac3
commit
1f6f9a1677
@ -307,6 +307,10 @@ def _exclude_events(events, config):
|
||||
if event.event_type == EVENT_STATE_CHANGED:
|
||||
to_state = State.from_dict(event.data.get('new_state'))
|
||||
# Do not report on new entities
|
||||
if event.data.get('old_state') is None:
|
||||
continue
|
||||
|
||||
# Do not report on entity removal
|
||||
if not to_state:
|
||||
continue
|
||||
|
||||
|
@ -117,6 +117,50 @@ class TestComponentLogbook(unittest.TestCase):
|
||||
|
||||
self.assertEqual(0, len(entries))
|
||||
|
||||
def test_exclude_new_entities(self):
|
||||
"""Test if events are excluded on first update."""
|
||||
entity_id = 'sensor.bla'
|
||||
entity_id2 = 'sensor.blu'
|
||||
pointA = dt_util.utcnow()
|
||||
pointB = pointA + timedelta(minutes=logbook.GROUP_BY_MINUTES)
|
||||
|
||||
eventA = self.create_state_changed_event(pointA, entity_id, 10)
|
||||
eventB = self.create_state_changed_event(pointB, entity_id2, 20)
|
||||
eventA.data['old_state'] = None
|
||||
|
||||
events = logbook._exclude_events((ha.Event(EVENT_HOMEASSISTANT_STOP),
|
||||
eventA, eventB), self.EMPTY_CONFIG)
|
||||
entries = list(logbook.humanify(events))
|
||||
|
||||
self.assertEqual(2, len(entries))
|
||||
self.assert_entry(
|
||||
entries[0], name='Home Assistant', message='stopped',
|
||||
domain=ha.DOMAIN)
|
||||
self.assert_entry(
|
||||
entries[1], pointB, 'blu', domain='sensor', entity_id=entity_id2)
|
||||
|
||||
def test_exclude_removed_entities(self):
|
||||
"""Test if events are excluded on last update."""
|
||||
entity_id = 'sensor.bla'
|
||||
entity_id2 = 'sensor.blu'
|
||||
pointA = dt_util.utcnow()
|
||||
pointB = pointA + timedelta(minutes=logbook.GROUP_BY_MINUTES)
|
||||
|
||||
eventA = self.create_state_changed_event(pointA, entity_id, 10)
|
||||
eventB = self.create_state_changed_event(pointB, entity_id2, 20)
|
||||
eventA.data['new_state'] = None
|
||||
|
||||
events = logbook._exclude_events((ha.Event(EVENT_HOMEASSISTANT_STOP),
|
||||
eventA, eventB), self.EMPTY_CONFIG)
|
||||
entries = list(logbook.humanify(events))
|
||||
|
||||
self.assertEqual(2, len(entries))
|
||||
self.assert_entry(
|
||||
entries[0], name='Home Assistant', message='stopped',
|
||||
domain=ha.DOMAIN)
|
||||
self.assert_entry(
|
||||
entries[1], pointB, 'blu', domain='sensor', entity_id=entity_id2)
|
||||
|
||||
def test_exclude_events_hidden(self):
|
||||
"""Test if events are excluded if entity is hidden."""
|
||||
entity_id = 'sensor.bla'
|
||||
|
Loading…
x
Reference in New Issue
Block a user