File: test_packet_decode_encode.py

package info (click to toggle)
python-airtouch5py 0.2.10-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,052 kB
  • sloc: python: 1,748; makefile: 5
file content (117 lines) | stat: -rw-r--r-- 4,911 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Test the packet encoder by decoding and then encoding a packet and comparing the result to the original bytes

from airtouch5py.packet_decoder import PacketDecoder
from airtouch5py.packet_encoder import PacketEncoder
from airtouch5py.packets.datapacket import DataPacket


def decode_then_encode(source_data: bytes) -> bytes:
    decoder = PacketDecoder()
    packet: DataPacket = decoder.decode(source_data)

    encoder = PacketEncoder()
    encoded = encoder.encode(packet)

    return encoded


def test_decode_encode_zone_control_example():
    source_data = b"\x55\x55\x55\xAA\x80\xB0\x0F\xC0\x00\x0C\x20\x00\x00\x00\x00\x04\x00\x01\x01\x02\xFF\x00\xF0\xA1"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_zone_status_request_example():
    source_data = b"\x55\x55\x55\xAA\x80\xB0\x01\xC0\x00\x08\x21\x00\x00\x00\x00\x00\x00\x00\xA4\x31"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_zone_status_response_example():
    source_data = b"\x55\x55\x55\xAA\xB0\x80\x01\xC0\x00\x18\x21\x00\x00\x00\x00\x08\x00\x02\x40\x80\x96\x80\x02\xE7\x00\x00\x01\x64\xFF\x00\x07\xFF\x00\x00\xB9\xEF"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_ac_control_turn_off_second_ac_example():
    source_data = b"\x55\x55\x55\xAA\x80\xb0\x01\xC0\x00\x0C\x22\x00\x00\x00\x00\x04\x00\x01\x21\xFF\x00\xFF\xD3\x47"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_ac_control_first_ac_cool_second_ac_26_degrees_example():
    source_data = b"\x55\x55\x55\xAA\x80\xb0\x01\xC0\x00\x10\x22\x00\x00\x00\x00\x04\x00\x02\x00\x4F\x00\xFF\x01\xFF\x40\xA0\x10\x4B"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_ac_status_request_example():
    source_data = b"\x55\x55\x55\xAA\x80\xB0\x01\xC0\x00\x08\x23\x00\x00\x00\x00\x00\x00\x00\x7D\xB0"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_ac_status_response_2_acs_example():
    source_data = b"\x55\x55\x55\xAA\xB0\x80\x01\xC0\x00\x1C\x23\x00\x00\x00\x00\x0A\x00\x02\x10\x12\x78\xC0\x02\xDA\x00\x00\x80\x00\x01\x42\x64\xC0\x02\xE4\x00\x00\x80\x00\x3D\x79"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_extended_ac_ability_request_example():
    source_data = b"\x55\x55\x55\xAA\x90\xB0\x01\x1F\x00\x03\xFF\x11\x00\x09\x83"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_extended_ac_ability_response_example():
    source_data = b"\x55\x55\x55\xAA\xB0\x90\x01\x1F\x00\x1C\xFF\x11\x00\x18\x55\x4E\x49\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x17\x1D\x10\x1f\x12\x1f\xa2\x26"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_ac_error_information_request_example():
    source_data = b"\x55\x55\x55\xAA\x90\xB0\x01\x1F\x00\x03\xFF\x10\x00\x99\x82"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_ac_error_information_response_example():
    source_data = b"\x55\x55\x55\xAA\xB0\x90\x01\x1F\x00\x0C\xFF\x10\x00\x08\x45\x52\x3A\x20\x46\x46\x46\x45\x36\xE4"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_zone_names_request_all_example():
    source_data = b"\x55\x55\x55\xAA\x90\xB0\x01\x1F\x00\x02\xFF\x13\x42\xCD"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_encode_zone_names_request_single_example():
    source_data = b"\x55\x55\x55\xAA\x90\xB0\x01\x1F\x00\x03\xFF\x13\x00\x69\x82"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_zone_names_response_single_example():
    source_data = b"\x55\x55\x55\xAA\xB0\x90\x01\x1F\x00\x0A\xFF\x13\x00\x06\x4C\x69\x76\x69\x6E\x67\xB6\x2F"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_zone_names_response_multiple_example():
    source_data = b"\x55\x55\x55\xAA\xb0\x90\x01\x1F\x00\x1C\xFF\x13\x00\x06\x4C\x69\x76\x69\x6E\x67\x01\x07\x4B\x69\x74\x63\x68\x65\x6E\x02\x07\x42\x65\x64\x72\x6F\x6F\x6D\xAE\x8B"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_decode_console_version_request_example():
    source_data = b"\x55\x55\x55\xAA\x90\xB0\x01\x1F\x00\x02\xFF\x30\x9B\x8C"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data


def test_console_version_response_example():
    source_data = b"\x55\x55\x55\xAA\xB0\x90\x01\x1F\x00\x0F\xFF\x30\x00\x0B\x31\x2E\x30\x2E\x33\x2C\x31\x2E\x30\x2E\x33\x13\x28"
    encoded = decode_then_encode(source_data)
    assert encoded == source_data