Skip to content

Commit 393cae9

Browse files
committed
Test: add counting of device-items and add asserts
This should help in detecting changes in the output.
1 parent 8a83d25 commit 393cae9

File tree

1 file changed

+47
-8
lines changed

1 file changed

+47
-8
lines changed

tests/test_smile.py

Lines changed: 47 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -398,26 +398,33 @@ async def device_test(self, smile=pw_smile.Smile, testdata=None):
398398
_LOGGER.info("Device list = %s", device_list)
399399
self.show_setup(location_list, device_list)
400400

401+
# Count the available device-items.
402+
self.device_items = 0
403+
for dev_id, details in device_list.items():
404+
for dev_key, _ in details.items():
405+
self.device_items += 1
406+
if dev_key in bsw_list:
407+
self.device_items -= 1
408+
for _ in details[dev_key]:
409+
self.device_items += 1
410+
_LOGGER.debug("Number of device-items: %s", self.device_items)
411+
412+
# Perform tests and asserts
401413
tests = 0
402414
asserts = 0
403415
for testdevice, measurements in testdata.items():
404416
tests += 1
405417
assert testdevice in device_list
406418
asserts += 1
407-
# if testdevice not in device_list:
408-
# _LOGGER.info("Device {} to test against {} not found in device_list for {}".format(testdevice,measurements,self.smile_setup))
409-
# else:
410-
# _LOGGER.info("Device {} to test found in {}".format(testdevice,device_list))
411419
for dev_id, details in device_list.items():
412420
if testdevice == dev_id:
413-
dev_data = device_list[dev_id]
414421
_LOGGER.info(
415422
"%s",
416423
"- Testing data for device {} ({})".format(
417424
details["name"], dev_id
418425
),
419426
)
420-
_LOGGER.info(" + Device data: %s", dev_data)
427+
_LOGGER.info(" + Device data: %s", details)
421428
for measure_key, measure_assert in measurements.items():
422429
_LOGGER.info(
423430
"%s",
@@ -428,14 +435,14 @@ async def device_test(self, smile=pw_smile.Smile, testdata=None):
428435
tests -= 1
429436
for key_1, val_1 in measure_assert.items():
430437
tests += 1
431-
for key_2, val_2 in dev_data[measure_key].items():
438+
for key_2, val_2 in details[measure_key].items():
432439
if key_1 != key_2:
433440
continue
434441

435442
assert val_1 == val_2
436443
asserts += 1
437444
else:
438-
assert dev_data[measure_key] == measure_assert
445+
assert details[measure_key] == measure_assert
439446
asserts += 1
440447

441448
assert tests == asserts
@@ -671,6 +678,7 @@ async def test_connect_legacy_anna(self):
671678
assert smile._smile_legacy
672679

673680
await self.device_test(smile, testdata)
681+
assert self.device_items == 39
674682
assert not self.notifications
675683

676684
result = await self.tinker_thermostat(
@@ -760,6 +768,7 @@ async def test_connect_legacy_anna_2(self):
760768
assert smile._smile_legacy
761769

762770
await self.device_test(smile, testdata)
771+
assert self.device_items == 39
763772
assert not self.notifications
764773

765774
result = await self.tinker_thermostat(
@@ -830,6 +839,7 @@ async def test_connect_smile_p1_v2(self):
830839
assert smile._smile_legacy
831840

832841
await self.device_test(smile, testdata)
842+
assert self.device_items == 21
833843
assert not self.notifications
834844

835845
await smile.close_connection()
@@ -865,6 +875,7 @@ async def test_connect_smile_p1_v2_2(self):
865875
assert smile._smile_legacy
866876

867877
await self.device_test(smile, testdata)
878+
assert self.device_items == 21
868879
assert not self.notifications
869880

870881
await smile.close_connection()
@@ -941,6 +952,7 @@ async def test_connect_anna_v4(self):
941952
assert not smile._smile_legacy
942953

943954
await self.device_test(smile, testdata)
955+
assert self.device_items == 44
944956
assert not self.notifications
945957

946958
assert not smile._anna_cooling_present
@@ -1040,6 +1052,7 @@ async def test_connect_anna_v4_dhw(self):
10401052
assert not smile._smile_legacy
10411053

10421054
await self.device_test(smile, testdata)
1055+
assert self.device_items == 44
10431056
assert not self.notifications
10441057

10451058
result = await self.tinker_thermostat(
@@ -1086,6 +1099,7 @@ async def test_connect_anna_v4_no_tag(self):
10861099
assert not smile._smile_legacy
10871100

10881101
await self.device_test(smile, testdata)
1102+
assert self.device_items == 44
10891103

10901104
result = await self.tinker_thermostat(
10911105
smile,
@@ -1166,6 +1180,7 @@ async def test_connect_anna_without_boiler_fw3(self):
11661180
assert not smile._smile_legacy
11671181

11681182
await self.device_test(smile, testdata)
1183+
assert self.device_items == 34
11691184
assert not self.notifications
11701185

11711186
result = await self.tinker_thermostat(
@@ -1243,6 +1258,7 @@ async def test_connect_anna_without_boiler_fw4(self):
12431258
assert not smile._smile_legacy
12441259

12451260
await self.device_test(smile, testdata)
1261+
assert self.device_items == 34
12461262
assert not self.notifications
12471263

12481264
result = await self.tinker_thermostat(
@@ -1320,6 +1336,7 @@ async def test_connect_anna_without_boiler_fw42(self):
13201336
assert not smile._smile_legacy
13211337

13221338
await self.device_test(smile, testdata)
1339+
assert self.device_items == 34
13231340
assert not self.notifications
13241341

13251342
result = await self.tinker_thermostat(
@@ -1440,6 +1457,7 @@ async def test_connect_adam_plus_anna(self):
14401457
assert not smile._smile_legacy
14411458

14421459
await self.device_test(smile, testdata)
1460+
assert self.device_items == 66
14431461
assert not self.notifications
14441462

14451463
result = await self.tinker_thermostat(
@@ -1491,6 +1509,7 @@ async def test_connect_adam_plus_anna_copy_with_error_domain_added(self):
14911509
assert not smile._smile_legacy
14921510

14931511
await self.device_test(smile, testdata)
1512+
assert self.device_items == 65
14941513

14951514
assert "3d28a20e17cb47dca210a132463721d5" in self.notifications
14961515

@@ -1673,6 +1692,7 @@ async def test_connect_adam_plus_anna_new(self):
16731692
assert not smile._smile_legacy
16741693

16751694
await self.device_test(smile, testdata)
1695+
assert self.device_items == 130
16761696

16771697
result = await self.tinker_thermostat(
16781698
smile,
@@ -2089,6 +2109,7 @@ async def test_connect_adam_zone_per_device(self):
20892109
assert not smile._smile_legacy
20902110

20912111
await self.device_test(smile, testdata)
2112+
assert self.device_items == 276
20922113

20932114
assert "af82e4ccf9c548528166d38e560662a4" in self.notifications
20942115
await smile.delete_notification()
@@ -2507,6 +2528,7 @@ async def test_connect_adam_multiple_devices_per_zone(self):
25072528
assert not smile._smile_legacy
25082529

25092530
await self.device_test(smile, testdata)
2531+
assert self.device_items == 276
25102532

25112533
assert "af82e4ccf9c548528166d38e560662a4" in self.notifications
25122534

@@ -2599,6 +2621,7 @@ async def test_adam_heatpump_cooling(self):
25992621
server, smile, client = await self.connect_wrapper()
26002622

26012623
await self.device_test(smile, testdata)
2624+
assert self.device_items == 349
26022625

26032626
await smile.close_connection()
26042627
await self.disconnect(server, client)
@@ -2814,6 +2837,7 @@ async def test_adam_plus_jip(self):
28142837
server, smile, client = await self.connect_wrapper()
28152838

28162839
await self.device_test(smile, testdata)
2840+
assert self.device_items == 182
28172841

28182842
# Negative test
28192843
result = await self.tinker_thermostat(
@@ -2878,6 +2902,7 @@ async def test_connect_p1v3(self):
28782902
assert not smile._smile_legacy
28792903

28802904
await self.device_test(smile, testdata)
2905+
assert self.device_items == 21
28812906
assert not self.notifications
28822907

28832908
await smile.close_connection()
@@ -2911,6 +2936,7 @@ async def test_connect_p1v3solarfake(self):
29112936
assert not smile._smile_legacy
29122937

29132938
await self.device_test(smile, testdata)
2939+
assert self.device_items == 21
29142940
assert not self.notifications
29152941

29162942
await smile.close_connection()
@@ -2963,6 +2989,7 @@ async def test_connect_p1v3_full_option(self):
29632989
assert not smile._smile_legacy
29642990

29652991
await self.device_test(smile, testdata)
2992+
assert self.device_items == 24
29662993
assert not self.notifications
29672994

29682995
await smile.close_connection()
@@ -3051,6 +3078,7 @@ async def test_connect_anna_heatpump_heating(self):
30513078
assert not smile._smile_legacy
30523079

30533080
await self.device_test(smile, testdata)
3081+
assert self.device_items == 52
30543082
assert self.cooling_present
30553083
assert not self.notifications
30563084

@@ -3126,6 +3154,7 @@ async def test_connect_anna_heatpump_cooling(self):
31263154
assert not smile._smile_legacy
31273155

31283156
await self.device_test(smile, testdata)
3157+
assert self.device_items == 52
31293158
assert self.cooling_present
31303159
assert not self.notifications
31313160

@@ -3184,6 +3213,7 @@ async def test_connect_anna_heatpump_cooling_fake_firmware(self):
31843213
assert smile.smile_version[0] == "4.10.10"
31853214

31863215
await self.device_test(smile, testdata)
3216+
assert self.device_items == 51
31873217
assert smile._anna_cooling_present
31883218
assert smile.lortherm_cooling_enabled
31893219
assert smile._lortherm_cooling_active
@@ -3223,6 +3253,7 @@ async def test_connect_anna_loria_idle_fake_firmware(self):
32233253
assert smile.smile_version[0] == "4.10.10"
32243254

32253255
await self.device_test(smile, testdata)
3256+
assert self.device_items == 51
32263257
assert smile._anna_cooling_present
32273258
assert smile.lortherm_cooling_enabled
32283259
assert not smile._lortherm_cooling_active
@@ -3256,6 +3287,7 @@ async def test_connect_adam_onoff_cooling_fake_firmware(self):
32563287
assert smile.smile_type == "thermostat"
32573288

32583289
await self.device_test(smile, testdata)
3290+
assert self.device_items == 46
32593291
assert smile._cooling_present
32603292
assert smile._adam_cooling_enabled
32613293

@@ -3346,6 +3378,7 @@ async def test_connect_anna_elga_2(self):
33463378
assert not smile._smile_legacy
33473379

33483380
await self.device_test(smile, testdata)
3381+
assert self.device_items == 50
33493382
assert self.cooling_present
33503383
assert not self.notifications
33513384

@@ -3390,6 +3423,7 @@ async def test_connect_anna_elga_2_schedule_off(self):
33903423
assert smile.smile_hostname == "smile000000"
33913424

33923425
await self.device_test(smile, testdata)
3426+
assert self.device_items == 50
33933427

33943428
await smile.close_connection()
33953429
await self.disconnect(server, client)
@@ -3481,6 +3515,7 @@ async def test_connect_anna_elga_2_cooling(self):
34813515
assert not smile._smile_legacy
34823516

34833517
await self.device_test(smile, testdata)
3518+
assert self.device_items == 52
34843519
assert self.cooling_present
34853520
assert not self.notifications
34863521

@@ -3630,6 +3665,7 @@ async def test_connect_stretch_v31(self):
36303665
assert smile._smile_legacy
36313666

36323667
await self.device_test(smile, testdata)
3668+
assert self.device_items == 88
36333669

36343670
await smile.close_connection()
36353671
await self.disconnect(server, client)
@@ -3934,6 +3970,7 @@ async def test_connect_stretch_v23(self):
39343970
assert smile._smile_legacy
39353971

39363972
await self.device_test(smile, testdata)
3973+
assert self.device_items == 229
39373974

39383975
switch_change = await self.tinker_switch(
39393976
smile, "2587a7fcdd7e482dab03fda256076b4b"
@@ -3996,6 +4033,7 @@ async def test_connect_stretch_v27_no_domain(self):
39964033
assert smile._smile_legacy
39974034

39984035
await self.device_test(smile, testdata)
4036+
assert self.device_items == 190
39994037
_LOGGER.info(" # Assert no master thermostat")
40004038

40014039
switch_change = await self.tinker_switch(
@@ -4051,6 +4089,7 @@ async def test_connect_p1v4(self):
40514089
assert not smile._smile_legacy
40524090

40534091
await self.device_test(smile, testdata)
4092+
assert self.device_items == 22
40544093
assert not self.notifications
40554094

40564095
await smile.close_connection()

0 commit comments

Comments
 (0)