@@ -375,14 +375,17 @@ def show_setup(location_list, device_list):
375375 assert False
376376
377377 @pytest .mark .asyncio
378- async def device_test (self , smile = pw_smile .Smile , testdata = None ):
378+ async def device_test (self , smile = pw_smile .Smile , testdata = None , initialize = True ):
379379 """Perform basic device tests."""
380- _LOGGER .info ("Asserting testdata:" )
381380 bsw_list = ["binary_sensors" , "central" , "climate" , "sensors" , "switches" ]
382381 # Make sure to test with the day set to Sunday, needed for full testcoverage of schedules_temps()
383382 with freeze_time ("2022-05-16 00:00:01" ):
384- await smile ._full_update_device ()
385- smile .get_all_devices ()
383+ if initialize :
384+ _LOGGER .info ("Asserting testdata:" )
385+ await smile ._full_update_device ()
386+ smile .get_all_devices ()
387+ else :
388+ _LOGGER .info ("Asserting updated testdata:" )
386389 data = await smile .async_update ()
387390
388391 if "heater_id" in data .gateway :
@@ -454,6 +457,7 @@ async def device_test(self, smile=pw_smile.Smile, testdata=None):
454457 asserts += 1
455458
456459 assert tests == asserts
460+ _LOGGER .debug ("Number of test-assert: %s" , asserts )
457461
458462 @pytest .mark .asyncio
459463 async def tinker_switch (
@@ -1065,6 +1069,50 @@ async def test_connect_anna_v4(self):
10651069 "sensors" : {"outdoor_temperature" : 7.44 },
10661070 },
10671071 }
1072+ testdata_updated = {
1073+ "cd0e6156b1f04d5f952349ffbe397481" : {
1074+ "maximum_boiler_temperature" : {
1075+ "setpoint" : 69.0 ,
1076+ "lower_bound" : 0.0 ,
1077+ "upper_bound" : 100.0 ,
1078+ "resolution" : 1.0 ,
1079+ },
1080+ "max_dhw_temperature" : {
1081+ "setpoint" : 59.0 ,
1082+ "lower_bound" : 30.0 ,
1083+ "upper_bound" : 60.0 ,
1084+ "resolution" : 0.01 ,
1085+ },
1086+ "binary_sensors" : {
1087+ "dhw_state" : False ,
1088+ "heating_state" : False ,
1089+ "flame_state" : False ,
1090+ },
1091+ "sensors" : {
1092+ "water_temperature" : 51.0 ,
1093+ "intended_boiler_temperature" : 0.0 ,
1094+ "modulation_level" : 0.0 ,
1095+ "return_temperature" : 41.0 ,
1096+ "water_pressure" : 2.1 ,
1097+ },
1098+ "switches" : {"dhw_cm_switch" : True },
1099+ },
1100+ "01b85360fdd243d0aaad4d6ac2a5ba7e" : {
1101+ "thermostat" : {
1102+ "setpoint" : 19.5 ,
1103+ "lower_bound" : 4.0 ,
1104+ "upper_bound" : 30.0 ,
1105+ "resolution" : 0.1 ,
1106+ },
1107+ "active_preset" : "away" ,
1108+ "select_schedule" : "Standaard" ,
1109+ "mode" : "auto" ,
1110+ "sensors" : {"temperature" : 19.5 , "setpoint" : 19.5 , "illuminance" : 39.5 },
1111+ },
1112+ "0466eae8520144c78afb29628384edeb" : {
1113+ "sensors" : {"outdoor_temperature" : 6.44 },
1114+ },
1115+ }
10681116
10691117 self .smile_setup = "anna_v4"
10701118 server , smile , client = await self .connect_wrapper ()
@@ -1102,10 +1150,18 @@ async def test_connect_anna_v4(self):
11021150 smile , "0466eae8520144c78afb29628384edeb"
11031151 )
11041152 assert not result
1153+
1154+ # Now change some data and change directory reading xml from
1155+ # emulating reading newer dataset after an update_interval
1156+ self .smile_setup = "updated/anna_v4"
1157+ await self .device_test (smile , testdata_updated , initialize = False )
1158+
11051159 await smile .close_connection ()
11061160 await self .disconnect (server , client )
11071161
11081162 server , smile , client = await self .connect_wrapper (raise_timeout = True )
1163+ # Reset self.smile_setup
1164+ self .smile_setup = "anna_v4"
11091165 await self .device_test (smile , testdata )
11101166 result = await self .tinker_thermostat (
11111167 smile ,
@@ -1831,6 +1887,34 @@ async def test_connect_adam_plus_anna_new(self):
18311887 "switches" : {"relay" : True },
18321888 },
18331889 }
1890+ testdata_updated = {
1891+ "67d73d0bd469422db25a618a5fb8eeb0" : {
1892+ "switches" : {"lock" : True },
1893+ },
1894+ "29542b2b6a6a4169acecc15c72a599b8" : {
1895+ "switches" : {"relay" : False , "lock" : False },
1896+ },
1897+ "2568cc4b9c1e401495d4741a5f89bee1" : {
1898+ "sensors" : {
1899+ "electricity_consumed" : 0.0 ,
1900+ "electricity_consumed_interval" : 0.0 ,
1901+ },
1902+ "switches" : {"relay" : False , "lock" : False },
1903+ },
1904+ "1772a4ea304041adb83f357b751341ff" : {
1905+ "available" : False ,
1906+ },
1907+ "da224107914542988a88561b4452b0f6" : {
1908+ "binary_sensors" : {"plugwise_notification" : True },
1909+ },
1910+ "e8ef2a01ed3b4139a53bf749204fe6b4" : {
1911+ "members" : [
1912+ "2568cc4b9c1e401495d4741a5f89bee1" ,
1913+ "29542b2b6a6a4169acecc15c72a599b8" ,
1914+ ],
1915+ "switches" : {"relay" : False },
1916+ },
1917+ }
18341918
18351919 self .smile_setup = "adam_plus_anna_new"
18361920 server , smile , client = await self .connect_wrapper ()
@@ -1905,6 +1989,11 @@ async def test_connect_adam_plus_anna_new(self):
19051989
19061990 await self .tinker_max_boiler_temp (smile )
19071991
1992+ # Now change some data and change directory reading xml from
1993+ # emulating reading newer dataset after an update_interval
1994+ self .smile_setup = "updated/adam_plus_anna_new"
1995+ await self .device_test (smile , testdata_updated , initialize = False )
1996+
19081997 await smile .close_connection ()
19091998 await self .disconnect (server , client )
19101999
@@ -3557,7 +3646,6 @@ async def test_adam_plus_jip(self):
35573646 good_schedules = [None ],
35583647 )
35593648 assert result
3560-
35613649 await smile .close_connection ()
35623650 await self .disconnect (server , client )
35633651
0 commit comments