|
9 | 9 | ) |
10 | 10 | from inelsmqtt.devices import Device, DeviceInfo |
11 | 11 | from inelsmqtt.utils.common import SimpleRelay, WarmLight, new_object |
| 12 | +from inelsmqtt.utils.core import DUMMY_VAL |
12 | 13 |
|
13 | 14 | TEST_STATE_TOPIC = "inels/status/10e97f8b7d30/02/02E8" |
14 | 15 |
|
@@ -205,3 +206,37 @@ def test_ha_diff_plain(device): |
205 | 206 | callback_low_battery.assert_not_called() |
206 | 207 | callback_temp_in.assert_called_once() |
207 | 208 | callback_temp_out.assert_not_called() |
| 209 | + |
| 210 | + |
| 211 | +def test_ha_diff_dummy_val(device): |
| 212 | + callback_low_battery = MagicMock() |
| 213 | + callback_temp_in = MagicMock() |
| 214 | + callback_temp_out = MagicMock() |
| 215 | + |
| 216 | + device.add_ha_callback("low_battery", -1, callback_low_battery) |
| 217 | + device.add_ha_callback("temp_in", -1, callback_temp_in) |
| 218 | + device.add_ha_callback("temp_out", -1, callback_temp_out) |
| 219 | + |
| 220 | + curr_val = new_object( |
| 221 | + low_battery=True, |
| 222 | + temp_in=2250, |
| 223 | + temp_out=2000, |
| 224 | + ) |
| 225 | + |
| 226 | + # Test when last_val is DUMMY_VAL |
| 227 | + device.ha_diff(DUMMY_VAL, curr_val) |
| 228 | + callback_low_battery.assert_not_called() |
| 229 | + callback_temp_in.assert_not_called() |
| 230 | + callback_temp_out.assert_not_called() |
| 231 | + |
| 232 | + # Test when curr_val is DUMMY_VAL |
| 233 | + device.ha_diff(curr_val, DUMMY_VAL) |
| 234 | + callback_low_battery.assert_not_called() |
| 235 | + callback_temp_in.assert_not_called() |
| 236 | + callback_temp_out.assert_not_called() |
| 237 | + |
| 238 | + # Test when both values are DUMMY_VAL |
| 239 | + device.ha_diff(DUMMY_VAL, DUMMY_VAL) |
| 240 | + callback_low_battery.assert_not_called() |
| 241 | + callback_temp_in.assert_not_called() |
| 242 | + callback_temp_out.assert_not_called() |
0 commit comments