|
1 | | -"""ERV tests.""" |
2 | | -import json |
3 | | -import os |
4 | | - |
5 | | -import pytest |
6 | | -from asynctest import CoroutineMock, Mock, patch |
7 | | -from pymelcloud import DEVICE_TYPE_ERV |
8 | | -from pymelcloud.erv_device import ( |
9 | | - VENTILATION_MODE_AUTO, |
10 | | - VENTILATION_MODE_BYPASS, |
11 | | - VENTILATION_MODE_RECOVERY, |
12 | | - ErvDevice, |
13 | | -) |
14 | | - |
15 | | - |
16 | | -def _build_device(device_conf_name: str, device_state_name: str) -> ErvDevice: |
17 | | - test_dir = os.path.join(os.path.dirname(__file__), "samples") |
18 | | - with open(os.path.join(test_dir, device_conf_name), "r") as json_file: |
19 | | - device_conf = json.load(json_file) |
20 | | - |
21 | | - with open(os.path.join(test_dir, device_state_name), "r") as json_file: |
22 | | - device_state = json.load(json_file) |
23 | | - |
24 | | - with patch("pymelcloud.client.Client") as _client: |
25 | | - _client.update_confs = CoroutineMock() |
26 | | - _client.device_confs.__iter__ = Mock(return_value=[device_conf].__iter__()) |
27 | | - _client.fetch_device_units = CoroutineMock(return_value=[]) |
28 | | - _client.fetch_device_state = CoroutineMock(return_value=device_state) |
29 | | - client = _client |
30 | | - |
31 | | - return ErvDevice(device_conf, client) |
32 | | - |
33 | | -@pytest.mark.asyncio |
34 | | -async def test_erv(): |
35 | | - device = _build_device("erv_listdevice.json", "erv_get.json") |
36 | | - |
37 | | - assert device.name == "" |
38 | | - assert device.device_type == DEVICE_TYPE_ERV |
39 | | - assert device.temperature_increment == 1.0 |
40 | | - assert device.has_energy_consumed_meter is True |
41 | | - assert device.total_energy_consumed == 0.1 |
42 | | - assert device.room_temperature is None |
43 | | - assert device.outside_temperature is None |
44 | | - assert device.room_co2_level is None |
45 | | - |
46 | | - assert device.ventilation_mode is None |
47 | | - assert device.ventilation_modes == [ |
48 | | - VENTILATION_MODE_RECOVERY, |
49 | | - VENTILATION_MODE_BYPASS, |
50 | | - VENTILATION_MODE_AUTO, |
51 | | - ] |
52 | | - assert device.actual_ventilation_mode is None |
53 | | - assert device.fan_speed is None |
54 | | - assert device.fan_speeds is None |
55 | | - assert device.actual_supply_fan_speed is None |
56 | | - assert device.actual_exhaust_fan_speed is None |
57 | | - assert device.core_maintenance_required is False |
58 | | - assert device.filter_maintenance_required is False |
59 | | - assert device.night_purge_mode is False |
60 | | - |
61 | | - await device.update() |
62 | | - |
63 | | - assert device.room_temperature == 29.0 |
64 | | - assert device.outside_temperature == 28.0 |
| 1 | +"""ERV tests.""" |
| 2 | +import json |
| 3 | +import os |
| 4 | + |
| 5 | +import pytest |
| 6 | +from asynctest import CoroutineMock, Mock, patch |
| 7 | +from pymelcloud import DEVICE_TYPE_ERV |
| 8 | +from pymelcloud.erv_device import ( |
| 9 | + VENTILATION_MODE_AUTO, |
| 10 | + VENTILATION_MODE_BYPASS, |
| 11 | + VENTILATION_MODE_RECOVERY, |
| 12 | + ErvDevice, |
| 13 | +) |
| 14 | + |
| 15 | + |
| 16 | +def _build_device(device_conf_name: str, device_state_name: str) -> ErvDevice: |
| 17 | + test_dir = os.path.join(os.path.dirname(__file__), "samples") |
| 18 | + with open(os.path.join(test_dir, device_conf_name), "r") as json_file: |
| 19 | + device_conf = json.load(json_file) |
| 20 | + |
| 21 | + with open(os.path.join(test_dir, device_state_name), "r") as json_file: |
| 22 | + device_state = json.load(json_file) |
| 23 | + |
| 24 | + with patch("pymelcloud.client.Client") as _client: |
| 25 | + _client.update_confs = CoroutineMock() |
| 26 | + _client.device_confs.__iter__ = Mock(return_value=[device_conf].__iter__()) |
| 27 | + _client.fetch_device_units = CoroutineMock(return_value=[]) |
| 28 | + _client.fetch_device_state = CoroutineMock(return_value=device_state) |
| 29 | + _client.fetch_energy_report = CoroutineMock(return_value=None) |
| 30 | + client = _client |
| 31 | + |
| 32 | + return ErvDevice(device_conf, client) |
| 33 | + |
| 34 | +@pytest.mark.asyncio |
| 35 | +async def test_erv(): |
| 36 | + device = _build_device("erv_listdevice.json", "erv_get.json") |
| 37 | + |
| 38 | + assert device.name == "" |
| 39 | + assert device.device_type == DEVICE_TYPE_ERV |
| 40 | + assert device.temperature_increment == 1.0 |
| 41 | + assert device.has_energy_consumed_meter is True |
| 42 | + assert device.total_energy_consumed == 0.1 |
| 43 | + assert device.room_temperature is None |
| 44 | + assert device.outside_temperature is None |
| 45 | + assert device.room_co2_level is None |
| 46 | + |
| 47 | + assert device.ventilation_mode is None |
| 48 | + assert device.ventilation_modes == [ |
| 49 | + VENTILATION_MODE_RECOVERY, |
| 50 | + VENTILATION_MODE_BYPASS, |
| 51 | + VENTILATION_MODE_AUTO, |
| 52 | + ] |
| 53 | + assert device.actual_ventilation_mode is None |
| 54 | + assert device.fan_speed is None |
| 55 | + assert device.fan_speeds is None |
| 56 | + assert device.actual_supply_fan_speed is None |
| 57 | + assert device.actual_exhaust_fan_speed is None |
| 58 | + assert device.core_maintenance_required is False |
| 59 | + assert device.filter_maintenance_required is False |
| 60 | + assert device.night_purge_mode is False |
| 61 | + |
| 62 | + await device.update() |
| 63 | + |
| 64 | + assert device.room_temperature == 29.0 |
| 65 | + assert device.outside_temperature == 28.0 |
65 | 66 | assert device.room_co2_level is None |
66 | | - |
67 | | - assert device.ventilation_mode == VENTILATION_MODE_RECOVERY |
68 | | - assert device.actual_ventilation_mode == VENTILATION_MODE_RECOVERY |
69 | | - assert device.fan_speed == "3" |
70 | | - assert device.fan_speeds == ["1", "2", "3", "4"] |
71 | | - assert device.actual_supply_fan_speed == "3" |
72 | | - assert device.actual_exhaust_fan_speed == "3" |
73 | | - assert device.core_maintenance_required is False |
74 | | - assert device.filter_maintenance_required is False |
75 | | - assert device.night_purge_mode is False |
| 67 | + |
| 68 | + assert device.ventilation_mode == VENTILATION_MODE_RECOVERY |
| 69 | + assert device.actual_ventilation_mode == VENTILATION_MODE_RECOVERY |
| 70 | + assert device.fan_speed == "3" |
| 71 | + assert device.fan_speeds == ["1", "2", "3", "4"] |
| 72 | + assert device.actual_supply_fan_speed == "3" |
| 73 | + assert device.actual_exhaust_fan_speed == "3" |
| 74 | + assert device.core_maintenance_required is False |
| 75 | + assert device.filter_maintenance_required is False |
| 76 | + assert device.night_purge_mode is False |
76 | 77 |
|
77 | 78 | assert device.wifi_signal == -65 |
78 | 79 | assert device.has_error is False |
|
0 commit comments