def test_group_magic_methods(group, endpoint): group.add_member(endpoint, suppress_event=True) assert endpoint.unique_id in group.members assert endpoint.unique_id in group assert group[endpoint.unique_id] is endpoint
async def _load_group_members(self) -> None: async with self.execute("SELECT * FROM group_members") as cursor: async for (group_id, ieee, ep_id) in cursor: group = self._application.groups[group_id] group.add_member( self._application.get_device(ieee).endpoints[ep_id], suppress_event=True, )
def test_group_add_member_no_evt(group, endpoint): listener = mock.MagicMock() group.add_listener(listener) assert endpoint.unique_id not in group group.add_member(endpoint, suppress_event=True) assert endpoint.unique_id in group assert FIXTURE_GRP_ID in endpoint.member_of assert listener.member_added.call_count == 0 assert listener.member_removed.call_count == 0
def test_pop_group(groups, endpoint): assert FIXTURE_GRP_ID in groups group = groups[FIXTURE_GRP_ID] group.add_member(endpoint) group.remove_member = mock.MagicMock() groups.listener_event.reset_mock() grp = groups.pop(group) assert isinstance(grp, zigpy.group.Group) assert FIXTURE_GRP_ID not in groups assert groups.listener_event.call_count == 1 assert group.remove_member.call_count == 1 assert group.remove_member.call_args[0][0] is endpoint with pytest.raises(KeyError): groups.pop(grp)
def test_group_add_member(group, endpoint): listener = mock.MagicMock() group.add_listener(listener) assert endpoint.unique_id not in group.members assert FIXTURE_GRP_ID not in endpoint.member_of group.add_member(endpoint) assert endpoint.unique_id in group.members assert FIXTURE_GRP_ID in endpoint.member_of assert listener.member_added.call_count == 1 assert listener.member_removed.call_count == 0 listener.reset_mock() group.add_member(endpoint) assert listener.member_added.call_count == 0 assert listener.member_removed.call_count == 0 group.__repr__() assert group.name == FIXTURE_GRP_NAME with pytest.raises(ValueError): group.add_member(endpoint.endpoint_id)