1
1
import binascii
2
2
import struct
3
3
4
- from vallox_websocket_api .client import calculate_offset , to_celsius
5
- from vallox_websocket_api .constants import vlxDevConstants
6
- from vallox_websocket_api .messages import (
7
- LogReadRequest ,
8
- LogReadResponse1 ,
9
- ReadTableRequest ,
10
- ReadTableResponse ,
11
- WriteMessageRequest ,
12
- )
13
-
14
-
15
- def test_read_table_message_request ():
4
+ import pytest
5
+
6
+ from vallox_websocket_api .client import to_celsius
7
+ from vallox_websocket_api .data .model import DataModel
8
+ from vallox_websocket_api .messages import Messages
9
+
10
+
11
+ @pytest .fixture
12
+ async def data_model ():
13
+ data_model = DataModel ()
14
+ await data_model .read_bundled ("2.0.16" )
15
+
16
+ return data_model
17
+
18
+
19
+ @pytest .fixture
20
+ def messages (data_model ):
21
+ return Messages (data_model )
22
+
23
+
24
+ def test_read_table_message_request (messages : Messages ):
16
25
expected = struct .pack ("HHHH" , 3 , 246 , 0 , 249 )
17
26
18
- res = ReadTableRequest .build ({})
27
+ res = messages . read_table_request .build ({})
19
28
20
29
assert expected == res
21
30
22
31
23
- def test_write_message_request ():
32
+ def test_write_message_request (messages : Messages , data_model : DataModel ):
24
33
expected = struct .pack ("HHHHH" , 4 , 249 , 20508 , 29215 , 49976 )
25
34
26
- res = WriteMessageRequest .build (
35
+ res = messages . write_request .build (
27
36
{
28
37
"fields" : {
29
38
"value" : {
30
39
"items" : [
31
40
{
32
- "address" : vlxDevConstants .A_CYC_HOME_AIR_TEMP_TARGET ,
41
+ "address" : data_model .addresses [
42
+ "A_CYC_HOME_AIR_TEMP_TARGET"
43
+ ],
33
44
"value" : 29215 ,
34
45
}
35
46
]
@@ -41,29 +52,33 @@ def test_write_message_request():
41
52
assert expected == res
42
53
43
54
44
- def test_log_read_message ():
55
+ def test_log_read_message (messages : Messages ):
45
56
expected = struct .pack ("HHH" , 2 , 243 , 245 )
46
57
47
- res = LogReadRequest .build ({})
58
+ res = messages . log_read_request .build ({})
48
59
49
60
assert expected == res
50
61
51
62
52
- def test_read_table_message_response ():
53
- data = ReadTableResponse .parse (
63
+ def test_read_table_message_response (messages : Messages , data_model : DataModel ):
64
+ data = messages . read_table_response .parse (
54
65
binascii .unhexlify (
55
66
"0024000000000000000000000000000001000800030000000000000061df98b100030003203fb9500331000000000000000000560000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b000f732a6ca969a171d1730800010000022700000028000000000000000001a6029e000100000028ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000057c503e8ffffffffffff000000190000000000010000000000000000000300001b98012000a50000000000000000001e00010000000100000000000000000007001b000f001700010012000200070044000000010000000000000007003200320001000000000000001e0000c0a80501ffffff0000000000000000000000000000000000000000000000000000000000c0a8050c86076097f78844b7ac4db61e502fe4f2004c004c000100c00101001c001e000a00320000003703840000708f00320032000a0000000000010000000a721f0000000000010000000f728300000000000000000064715700000000000000000000000000000000000000010037001e000000000000000068bf71bb000083910000002600b4000000010001000000010001001e000f00080001001200000003000000000000000000000017000003e90000000000000001000100010000000a003200010000000000000000000000000000000000000000001000000000000000000000000000540048000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
56
67
)
57
68
)
58
69
59
70
assert 20.0 == to_celsius (
60
- data [calculate_offset (vlxDevConstants .A_CYC_HOME_AIR_TEMP_TARGET )]
71
+ data [
72
+ data_model .calculate_offset (
73
+ data_model .addresses ["A_CYC_HOME_AIR_TEMP_TARGET" ]
74
+ )
75
+ ]
61
76
)
62
77
63
78
64
- def test_log_read_response ():
79
+ def test_log_read_response (messages : Messages ):
65
80
response = struct .pack ("HHHH" , 3 , 243 , 6 , 252 )
66
81
67
- result = LogReadResponse1 .parse (response )
82
+ result = messages . log_read_response1 .parse (response )
68
83
69
84
assert 6 == result .fields .value .pages
0 commit comments