File: test_heater.py

package info (click to toggle)
python-incomfort-client 0.6.3.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 160 kB
  • sloc: python: 603; sh: 30; makefile: 5
file content (127 lines) | stat: -rw-r--r-- 3,395 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
118
119
120
121
122
123
124
125
126
127
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
"""Python client library for the InterGas InComfort system (via Lan2RF gateway)."""

from __future__ import annotations

import pytest
from common import SERIAL_NO_0, heater_with_status

# Test data...
HEATER_SANS_ROOMS = (
    {
        "serial_year": 0,
        "serial_month": 0,
        "serial_line": 0,
        "serial_sn1": 0,
        "serial_sn2": 0,
        "serial_sn3": 0,
        "displ_code": 126,
        "IO": 0,
        "ch_temp_lsb": 168,
        "ch_temp_msb": 24,
        "tap_temp_lsb": 184,
        "tap_temp_msb": 19,
        "ch_pressure_lsb": 174,
        "ch_pressure_msb": 0,
        "nodenr": 250,
        "rf_message_rssi": 27,
        "rfstatus_cntr": 0,
        "room_set_ovr_1_msb": 0,
        "room_set_ovr_1_lsb": 0,
        "room_temp_1_lsb": 255,
        "room_temp_1_msb": 127,
        "room_temp_set_1_lsb": 255,
        "room_temp_set_1_msb": 127,
        "room_set_ovr_2_msb": 3,
        "room_set_ovr_2_lsb": 132,
        "room_temp_2_lsb": 255,
        "room_temp_2_msb": 127,
        "room_temp_set_2_lsb": 255,
        "room_temp_set_2_msb": 127,
    },
    {
        "serial_no": SERIAL_NO_0,
        "display_code": 126,
        "display_text": "standby",
        "fault_code": None,
        "is_burning": False,
        "is_failed": False,
        "is_pumping": False,
        "is_tapping": False,
        "heater_temp": 63.12,
        "tap_temp": 50.48,
        "pressure": 1.74,
        "nodenr": 250,
        "rf_message_rssi": 27,
        "rfstatus_cntr": 0,
    },
)

HEATER_WITH_ROOMS = (
    {
        "serial_year": 0,
        "serial_month": 0,
        "serial_line": 0,
        "serial_sn1": 0,
        "serial_sn2": 0,
        "serial_sn3": 0,
        "displ_code": 126,
        "IO": 0,
        "ch_temp_lsb": 168,
        "ch_temp_msb": 24,
        "tap_temp_lsb": 184,
        "tap_temp_msb": 19,
        "ch_pressure_lsb": 174,
        "ch_pressure_msb": 0,
        "nodenr": 250,
        "rf_message_rssi": 27,
        "rfstatus_cntr": 0,
        "room_set_ovr_1_msb": 0,
        "room_set_ovr_1_lsb": 0,
        "room_temp_1_lsb": 108,
        "room_temp_1_msb": 7,
        "room_temp_set_1_lsb": 8,
        "room_temp_set_1_msb": 7,
        "room_set_ovr_2_msb": 3,
        "room_set_ovr_2_lsb": 132,
        "room_temp_2_lsb": 255,
        "room_temp_2_msb": 127,
        "room_temp_set_2_lsb": 255,
        "room_temp_set_2_msb": 127,
    },
    {
        "serial_no": SERIAL_NO_0,
        "display_code": 126,
        "display_text": "standby",
        "fault_code": None,
        "is_burning": False,
        "is_failed": False,
        "is_pumping": False,
        "is_tapping": False,
        "heater_temp": 63.12,
        "tap_temp": 50.48,
        "pressure": 1.74,
        "nodenr": 250,
        "rf_message_rssi": 27,
        "rfstatus_cntr": 0,
    },
    {"room_temp": 19.0, "setpoint": 18.0, "override": 0.0},
)


@pytest.mark.asyncio
async def test_heater_sans_rooms():

    heater = await heater_with_status(HEATER_SANS_ROOMS[0])
    assert heater.status == HEATER_SANS_ROOMS[1]
    assert len(heater.rooms) == 0


@pytest.mark.asyncio
async def test_heater_with_rooms():

    heater = await heater_with_status(HEATER_WITH_ROOMS[0])
    assert heater.status == HEATER_WITH_ROOMS[1]
    assert len(heater.rooms) == 1 and heater.rooms[0].status == HEATER_WITH_ROOMS[2]