mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 20:27:08 +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:
|
if event.event_type == EVENT_STATE_CHANGED:
|
||||||
to_state = State.from_dict(event.data.get('new_state'))
|
to_state = State.from_dict(event.data.get('new_state'))
|
||||||
# Do not report on new entities
|
# 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:
|
if not to_state:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -117,6 +117,50 @@ class TestComponentLogbook(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertEqual(0, len(entries))
|
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):
|
def test_exclude_events_hidden(self):
|
||||||
"""Test if events are excluded if entity is hidden."""
|
"""Test if events are excluded if entity is hidden."""
|
||||||
entity_id = 'sensor.bla'
|
entity_id = 'sensor.bla'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user