-
-
Notifications
You must be signed in to change notification settings - Fork 122
Expand file tree
/
Copy pathtest_dm_restart_r_co.py
More file actions
59 lines (51 loc) · 1.85 KB
/
Copy pathtest_dm_restart_r_co.py
File metadata and controls
59 lines (51 loc) · 1.85 KB
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
"""Tests for dm_restart — KNX v02.01.02 - Management Procedures 03.05.02 - §3.7.3 DM_Restart_RCo."""
from unittest.mock import AsyncMock, call
from xknx import XKNX
from xknx.management.procedures.device.dm_restart_r_co import (
dm_restart,
dm_restart_r_co,
)
from xknx.telegram import IndividualAddress, Telegram, apci, tpci
async def test_dm_restart_r_co() -> None:
"""Test dm_restart_r_co on an already-open connection."""
xknx = XKNX()
xknx.cemi_handler = AsyncMock()
individual_address = IndividualAddress("4.0.10")
connect = Telegram(destination_address=individual_address, tpci=tpci.TConnect())
restart = Telegram(
destination_address=individual_address,
tpci=tpci.TDataConnected(0),
payload=apci.Restart(),
)
disconnect = Telegram(
destination_address=individual_address,
tpci=tpci.TDisconnect(),
)
async with xknx.management.connection(individual_address) as conn:
await dm_restart_r_co(conn)
assert xknx.cemi_handler.send_telegram.call_args_list == [
call(connect),
call(restart),
call(disconnect),
]
async def test_dm_restart() -> None:
"""Test dm_restart opens and closes its own connection."""
xknx = XKNX()
xknx.cemi_handler = AsyncMock()
individual_address = IndividualAddress("4.0.10")
connect = Telegram(destination_address=individual_address, tpci=tpci.TConnect())
restart = Telegram(
destination_address=individual_address,
tpci=tpci.TDataConnected(0),
payload=apci.Restart(),
)
disconnect = Telegram(
destination_address=individual_address,
tpci=tpci.TDisconnect(),
)
await dm_restart(xknx, individual_address)
assert xknx.cemi_handler.send_telegram.call_args_list == [
call(connect),
call(restart),
call(disconnect),
]