Fix EntityComponent handle entities without a name (#8065)
* Fix EntityComponent handle entities without a name * Implement solution by Anders
This commit is contained in:
parent
2ba6b3a2ab
commit
18935440ed
2 changed files with 7 additions and 5 deletions
|
@ -238,7 +238,8 @@ class EntityComponent(object):
|
||||||
This method must be run in the event loop.
|
This method must be run in the event loop.
|
||||||
"""
|
"""
|
||||||
if self.group_name is not None:
|
if self.group_name is not None:
|
||||||
ids = sorted(self.entities, key=lambda x: self.entities[x].name)
|
ids = sorted(self.entities,
|
||||||
|
key=lambda x: self.entities[x].name or x)
|
||||||
group = get_component('group')
|
group = get_component('group')
|
||||||
group.async_set_group(
|
group.async_set_group(
|
||||||
self.hass, slugify(self.group_name), name=self.group_name,
|
self.hass, slugify(self.group_name), name=self.group_name,
|
||||||
|
|
|
@ -84,7 +84,7 @@ class TestHelpersEntityComponent(unittest.TestCase):
|
||||||
# No group after setup
|
# No group after setup
|
||||||
assert len(self.hass.states.entity_ids()) == 0
|
assert len(self.hass.states.entity_ids()) == 0
|
||||||
|
|
||||||
component.add_entities([EntityTest(name='hello')])
|
component.add_entities([EntityTest()])
|
||||||
|
|
||||||
# group exists
|
# group exists
|
||||||
assert len(self.hass.states.entity_ids()) == 2
|
assert len(self.hass.states.entity_ids()) == 2
|
||||||
|
@ -92,7 +92,8 @@ class TestHelpersEntityComponent(unittest.TestCase):
|
||||||
|
|
||||||
group = self.hass.states.get('group.everyone')
|
group = self.hass.states.get('group.everyone')
|
||||||
|
|
||||||
assert group.attributes.get('entity_id') == ('test_domain.hello',)
|
assert group.attributes.get('entity_id') == \
|
||||||
|
('test_domain.unnamed_device',)
|
||||||
|
|
||||||
# group extended
|
# group extended
|
||||||
component.add_entities([EntityTest(name='goodbye')])
|
component.add_entities([EntityTest(name='goodbye')])
|
||||||
|
@ -100,9 +101,9 @@ class TestHelpersEntityComponent(unittest.TestCase):
|
||||||
assert len(self.hass.states.entity_ids()) == 3
|
assert len(self.hass.states.entity_ids()) == 3
|
||||||
group = self.hass.states.get('group.everyone')
|
group = self.hass.states.get('group.everyone')
|
||||||
|
|
||||||
# Sorted order
|
# Ordered in order of added to the group
|
||||||
assert group.attributes.get('entity_id') == \
|
assert group.attributes.get('entity_id') == \
|
||||||
('test_domain.goodbye', 'test_domain.hello')
|
('test_domain.goodbye', 'test_domain.unnamed_device')
|
||||||
|
|
||||||
def test_polling_only_updates_entities_it_should_poll(self):
|
def test_polling_only_updates_entities_it_should_poll(self):
|
||||||
"""Test the polling of only updated entities."""
|
"""Test the polling of only updated entities."""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue