def test_deserialize_cluster(endpoint): hdr, args = endpoint.deserialize(0, b"\x01\x01\x00xxx") assert hdr.tsn == 1 assert hdr.frame_control.is_general is False assert hdr.frame_control.is_cluster is True assert hdr.command_id == 0 assert not hdr.is_reply
def test_deserialize_cluster_client(endpoint): tsn, command_id, is_reply, args = endpoint.deserialize( 3, b'\x09\x01\x00AB') assert tsn == 1 assert command_id == 256 assert is_reply is True assert args == [0x4241]
def test_deserialize_general_unknown(endpoint): hdr, args = endpoint.deserialize(0, b"\x00\x01\xff") assert hdr.tsn == 1 assert hdr.frame_control.is_general is True assert hdr.frame_control.is_cluster is False assert hdr.command_id == 255 assert hdr.is_reply is False
def test_deserialize_cluster_client(endpoint): hdr, args = endpoint.deserialize(3, b"\x09\x01\x00AB") assert hdr.tsn == 1 assert hdr.frame_control.is_general is False assert hdr.frame_control.is_cluster is True assert hdr.command_id == 0 assert list(args) == [0x4241] assert hdr.is_reply
async def test_handle_cluster_general_request_disable_default_rsp(endpoint): hdr, values = endpoint.deserialize( 0, b"\x18\xCD\x0A\x01\xFF\x42\x25\x01\x21\x95\x0B\x04\x21\xA8\x43\x05\x21\x36\x00" b"\x06\x24\x02\x00\x05\x00\x00\x64\x29\xF8\x07\x65\x21\xD9\x0E\x66\x2B\x84\x87" b"\x01\x00\x0A\x21\x00\x00", ) cluster = endpoint.in_clusters[0] p1 = patch.object(cluster, "_update_attribute") p2 = patch.object(cluster, "general_command") with p1 as attr_lst_mock, p2 as general_cmd_mock: cluster.handle_cluster_general_request(hdr, values) await asyncio.sleep(0) assert attr_lst_mock.call_count > 0 assert general_cmd_mock.call_count == 0 with p1 as attr_lst_mock, p2 as general_cmd_mock: hdr.frame_control.disable_default_response = False cluster.handle_cluster_general_request(hdr, values) await asyncio.sleep(0) assert attr_lst_mock.call_count > 0 assert general_cmd_mock.call_count == 1 assert general_cmd_mock.call_args[1]["tsn"] == hdr.tsn
def test_deserialize_cluster_command_unknown(endpoint): tsn, command_id, is_reply, args = endpoint.deserialize(0, b'\x01\x01\xff') assert tsn == 1 assert command_id == 255 + 256 assert is_reply is False
def test_deserialize_cluster(endpoint): tsn, command_id, is_reply, args = endpoint.deserialize(0, b'\x01\x01\x00xxx') assert tsn == 1 assert command_id == 256 assert is_reply is False
def test_deserialize_general_unknown(endpoint): tsn, command_id, is_reply, args = endpoint.deserialize(0, b'\x00\x01\xff') assert tsn == 1 assert command_id == 255 assert is_reply is False
def test_deserialize_cluster_command_unknown(endpoint): hdr, args = endpoint.deserialize(0, b"\x01\x01\xff") assert hdr.tsn == 1 assert hdr.command_id == 255 assert not hdr.is_reply
def test_deserialize_cluster_unknown(endpoint): with pytest.raises(KeyError): endpoint.deserialize(0xFF00, b"\x05\x00\x00\x01\x00")
def test_deserialize_general(endpoint): hdr, args = endpoint.deserialize(0, b"\x00\x01\x00") assert hdr.tsn == 1 assert hdr.command_id == 0 assert not hdr.is_reply
def test_deserialize_general(endpoint): tsn, command_id, is_reply, args = endpoint.deserialize(0, b"\x00\x01\x00") assert tsn == 1 assert command_id == 0 assert is_reply is False