@@ -204,21 +204,22 @@ def _get_groups(self) -> None:
204204
205205 for group in self ._domain_objects .findall ("./group" ):
206206 group_id = group .get ("id" )
207- group_name = group .find ("name" ).text
208207 if group_id is None :
209208 continue # pragma: no cover
210209
211- if members := self ._collect_members (group ):
212- self . _new_groups . append ( group_id )
210+ if not ( members := self ._collect_members (group ) ):
211+ continue
213212
213+ group_name = group .find ("name" ).text
214+ group_type = group .find ("type" ).text
215+ self ._new_groups .append (group_id )
214216 if (
215217 group_id in self ._existing_groups
216218 and self .gw_entities [group_id ]["name" ] == group_name
217219 ):
218220 continue
219221
220- group_type = group .find ("type" ).text
221- if group_type in GROUP_TYPES and members :
222+ if group_type in GROUP_TYPES :
222223 self .gw_entities [group_id ] = {
223224 "dev_class" : group_type ,
224225 "model" : "Group" ,
@@ -228,10 +229,10 @@ def _get_groups(self) -> None:
228229 }
229230 self ._count += 5
230231
231- removed = list ( set ( self ._existing_groups ) - set ( self . _new_groups ))
232- if self ._existing_groups and removed :
233- for group_id in removed :
234- self .gw_entities .pop (group_id )
232+ if self ._existing_groups :
233+ removed_groups = set ( self ._existing_groups ) - set ( self . _new_groups )
234+ for group_id in removed_groups :
235+ self .gw_entities .pop (group_id , None )
235236
236237 self ._existing_groups = self ._new_groups
237238 self ._new_groups = []
0 commit comments