22
33import pytest
44import logging
5- import zigpy .types as zigpy_types
5+ import zigpy .types as zigpy_t
66import zigpy .exceptions
77
8- import zigpy_zigate .config as config
8+ import zigpy_zigate .api
99import zigpy_zigate .types as t
10+ import zigpy_zigate .config as config
1011import zigpy_zigate .zigbee .application
1112
1213APP_CONFIG = zigpy_zigate .zigbee .application .ControllerApplication .SCHEMA (
2223def app ():
2324 a = zigpy_zigate .zigbee .application .ControllerApplication (APP_CONFIG )
2425 a .version = FAKE_FIRMWARE_VERSION
25- a ._api = MagicMock ()
26+ a ._api = MagicMock (spec_set = zigpy_zigate . api . ZiGate )
2627 return a
2728
2829
@@ -32,7 +33,7 @@ def test_zigpy_ieee(app):
3233 data = b"\x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 "
3334
3435 zigate_ieee , _ = t .EUI64 .deserialize (data )
35- app .state .node_info .ieee = zigpy_types .EUI64 (zigate_ieee )
36+ app .state .node_info .ieee = zigpy_t .EUI64 (zigate_ieee )
3637
3738 dst_addr = app .get_dst_address (cluster )
3839 assert dst_addr .serialize () == b"\x03 " + data [::- 1 ] + b"\x01 "
@@ -148,4 +149,14 @@ async def test_startup_connect(zigate_new, app, version_rsp, expected_version):
148149
149150 await app .connect ()
150151
151- assert app .version == expected_version
152+ assert app .version == expected_version
153+
154+
155+ @pytest .mark .asyncio
156+ async def test_send_group_request (app ):
157+ packet = zigpy_t .ZigbeePacket (src = None , src_ep = 1 , dst = zigpy_t .AddrModeAddress (addr_mode = zigpy_t .AddrMode .Group , address = 0x0002 ), dst_ep = None , source_route = None , extended_timeout = False , tsn = 21 , profile_id = 260 , cluster_id = 6 , data = zigpy_t .SerializableBytes (b'\x01 \x15 \x00 ' ), tx_options = zigpy_t .TransmitOptions .NONE , radius = 0 , non_member_radius = 3 , lqi = None , rssi = None )
158+
159+ app ._api .raw_aps_data_request .return_value = ([t .Status .Success , 0 , 1328 , b'\x01 \xea \x00 \x00 ' ], 0 )
160+ await app .send_packet (packet )
161+
162+ app ._api .raw_aps_data_request .assert_called_once ()
0 commit comments