@@ -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