|
28 | 28 | WriteClusterAttributeResponse,
|
29 | 29 | )
|
30 | 30 | from zha.zigbee.device import Device, WebSocketClientDevice
|
31 |
| -from zha.zigbee.group import Group, GroupMemberReference, WebSocketClientGroup |
| 31 | +from zha.zigbee.group import ( |
| 32 | + Group, |
| 33 | + GroupMemberReference, |
| 34 | + WebSocketClientGroup, |
| 35 | + WebSocketClientGroupMember, |
| 36 | +) |
32 | 37 | from zha.zigbee.model import GroupInfo
|
33 | 38 |
|
34 | 39 | from ..common import (
|
@@ -481,3 +486,37 @@ async def test_ws_client_gateway_groups(
|
481 | 486 | assert response.name == "Test Group Controller"
|
482 | 487 | assert client_device1.ieee in response.members_by_ieee
|
483 | 488 | assert client_device2.ieee in response.members_by_ieee
|
| 489 | + |
| 490 | + # test member info and removal from member |
| 491 | + |
| 492 | + member_info = response.members_by_ieee[client_device1.ieee] |
| 493 | + assert member_info is not None |
| 494 | + assert member_info.endpoint_id == entity1.info_object.endpoint_id |
| 495 | + assert member_info.ieee == entity1.info_object.device_ieee |
| 496 | + assert member_info.device_info is not None |
| 497 | + assert member_info.device_info.ieee == entity1._device.extended_device_info.ieee |
| 498 | + assert member_info.device_info.nwk == entity1._device.extended_device_info.nwk |
| 499 | + assert ( |
| 500 | + member_info.device_info.manufacturer |
| 501 | + == entity1._device.extended_device_info.manufacturer |
| 502 | + ) |
| 503 | + assert member_info.device_info.model == entity1._device.extended_device_info.model |
| 504 | + assert ( |
| 505 | + member_info.device_info.signature |
| 506 | + == entity1._device.extended_device_info.signature |
| 507 | + ) |
| 508 | + |
| 509 | + client_group: WebSocketClientGroup = ws_client_gateway.get_group(response.group_id) |
| 510 | + assert client_group is not None |
| 511 | + members = client_group.members |
| 512 | + assert len(members) == 2 |
| 513 | + entity_1_member: WebSocketClientGroupMember |
| 514 | + for member in members: |
| 515 | + if member.member_info.ieee == entity1.info_object.device_ieee: |
| 516 | + entity_1_member = member |
| 517 | + break |
| 518 | + |
| 519 | + assert entity_1_member is not None |
| 520 | + await entity_1_member.async_remove_from_group() |
| 521 | + await zha_gateway.async_block_till_done() |
| 522 | + assert len(client_group.members) == 1 |
0 commit comments