Skip to content

Commit 382fb34

Browse files
committed
Add WHM event test support
1 parent 95dcc6c commit 382fb34

File tree

1 file changed

+78
-1
lines changed

1 file changed

+78
-1
lines changed

src/python_testing/TC_EWATERHTR_2_2.py

+78-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
import time
3333

3434
import chip.clusters as Clusters
35-
from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
35+
from chip.clusters.Types import NullValue
36+
from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
3637
from mobly import asserts
3738
from TC_EWATERHTRBase import EWATERHTRBase
3839

@@ -175,6 +176,12 @@ async def test_TC_EWATERHTR_2_2(self):
175176
self.step("1")
176177
# Commission DUT - already done
177178

179+
# Subscribe to Events and when they are sent push them to a queue for checking later
180+
events_callback = EventChangeCallback(Clusters.WaterHeaterManagement)
181+
await events_callback.start(self.default_controller,
182+
self.dut_node_id,
183+
self.matter_test_config.endpoint)
184+
178185
self.step("2")
179186
await self.check_test_event_triggers_enabled()
180187

@@ -235,6 +242,16 @@ async def test_TC_EWATERHTR_2_2(self):
235242
self.step("8b")
236243
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
237244

245+
################################################################################
246+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostStarted)
247+
asserts.assert_equal(event_data.boostInfo.duration, 5)
248+
asserts.assert_equal(event_data.boostInfo.oneShot, True)
249+
asserts.assert_true(event_data.boostInfo.emergencyBoost is None, "emergencyBoost should be None")
250+
asserts.assert_true(event_data.boostInfo.temporarySetpoint is None, "temporarySetpoint should be None")
251+
asserts.assert_true(event_data.boostInfo.targetPercentage is None, "targetPercentage should be None")
252+
asserts.assert_true(event_data.boostInfo.targetReheat is None, "targetReheat should be None")
253+
################################################################################
254+
238255
self.step("9")
239256
time.sleep(6)
240257

@@ -245,6 +262,10 @@ async def test_TC_EWATERHTR_2_2(self):
245262
self.step("9b")
246263
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kInactive)
247264

265+
################################################################################
266+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostEnded)
267+
################################################################################
268+
248269
self.step("10")
249270
await self.send_boost_command(duration=600, one_shot=True)
250271

@@ -256,6 +277,16 @@ async def test_TC_EWATERHTR_2_2(self):
256277
self.step("10b")
257278
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
258279

280+
################################################################################
281+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostStarted)
282+
asserts.assert_equal(event_data.boostInfo.duration, 600)
283+
asserts.assert_equal(event_data.boostInfo.oneShot, True)
284+
asserts.assert_true(event_data.boostInfo.emergencyBoost is None, "emergencyBoost should be None")
285+
asserts.assert_true(event_data.boostInfo.temporarySetpoint is None, "temporarySetpoint should be None")
286+
asserts.assert_true(event_data.boostInfo.targetPercentage is None, "targetPercentage should be None")
287+
asserts.assert_true(event_data.boostInfo.targetReheat is None, "targetReheat should be None")
288+
################################################################################
289+
259290
self.step("11")
260291
await self.send_test_event_trigger_water_temperature61C_test_event()
261292

@@ -266,6 +297,10 @@ async def test_TC_EWATERHTR_2_2(self):
266297
self.step("11b")
267298
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kInactive)
268299

300+
################################################################################
301+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostEnded)
302+
################################################################################
303+
269304
self.step("12")
270305
await self.send_test_event_trigger_water_temperature20C_test_event()
271306

@@ -284,6 +319,16 @@ async def test_TC_EWATERHTR_2_2(self):
284319
self.step("13b")
285320
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
286321

322+
################################################################################
323+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostStarted)
324+
asserts.assert_equal(event_data.boostInfo.duration, 600)
325+
asserts.assert_true(event_data.boostInfo.oneShot is None, "oneShot should be None")
326+
asserts.assert_true(event_data.boostInfo.emergencyBoost is None, "emergencyBoost should be None")
327+
asserts.assert_true(event_data.boostInfo.temporarySetpoint is None, "temporarySetpoint should be None")
328+
asserts.assert_true(event_data.boostInfo.targetPercentage is None, "targetPercentage should be None")
329+
asserts.assert_true(event_data.boostInfo.targetReheat is None, "targetReheat should be None")
330+
################################################################################
331+
287332
self.step("14")
288333
await self.send_test_event_trigger_water_temperature61C_test_event()
289334

@@ -315,6 +360,10 @@ async def test_TC_EWATERHTR_2_2(self):
315360
self.step("16b")
316361
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kInactive)
317362

363+
################################################################################
364+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostEnded)
365+
################################################################################
366+
318367
self.step("17")
319368
await self.send_boost_command(duration=600, temporary_setpoint=6500)
320369

@@ -326,6 +375,16 @@ async def test_TC_EWATERHTR_2_2(self):
326375
self.step("17b")
327376
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
328377

378+
################################################################################
379+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostStarted)
380+
asserts.assert_equal(event_data.boostInfo.duration, 600)
381+
asserts.assert_true(event_data.boostInfo.oneShot is None, "oneShot should be None")
382+
asserts.assert_true(event_data.boostInfo.emergencyBoost is None, "emergencyBoost should be None")
383+
asserts.assert_equal(event_data.boostInfo.temporarySetpoint, 6500)
384+
asserts.assert_true(event_data.boostInfo.targetPercentage is None, "targetPercentage should be None")
385+
asserts.assert_true(event_data.boostInfo.targetReheat is None, "targetReheat should be None")
386+
################################################################################
387+
329388
self.step("18")
330389
await self.send_test_event_trigger_water_temperature61C_test_event()
331390

@@ -358,6 +417,16 @@ async def test_TC_EWATERHTR_2_2(self):
358417
self.step("20b")
359418
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
360419

420+
################################################################################
421+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostStarted)
422+
asserts.assert_equal(event_data.boostInfo.duration, 600)
423+
asserts.assert_true(event_data.boostInfo.oneShot is None, "oneShot should be None")
424+
asserts.assert_true(event_data.boostInfo.emergencyBoost is None, "emergencyBoost should be None")
425+
asserts.assert_equal(event_data.boostInfo.temporarySetpoint, 7000)
426+
asserts.assert_true(event_data.boostInfo.targetPercentage is None, "targetPercentage should be None")
427+
asserts.assert_true(event_data.boostInfo.targetReheat is None, "targetReheat should be None")
428+
################################################################################
429+
361430
self.step("21")
362431
await self.send_cancel_boost_command()
363432

@@ -368,9 +437,17 @@ async def test_TC_EWATERHTR_2_2(self):
368437
self.step("21b")
369438
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kInactive)
370439

440+
################################################################################
441+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostEnded)
442+
################################################################################
443+
371444
self.step("22")
372445
await self.send_cancel_boost_command()
373446

447+
################################################################################
448+
event_data = events_callback.wait_for_event_expect_no_report()
449+
################################################################################
450+
374451
self.step("23")
375452
await self.send_test_event_trigger_basic_installation_test_event_clear()
376453

0 commit comments

Comments
 (0)