|
29 | 29 | import copy
|
30 | 30 | import logging
|
31 | 31 | import random
|
| 32 | +from collections import namedtuple |
32 | 33 |
|
33 | 34 | import chip.clusters as Clusters
|
34 | 35 | from chip import ChipDeviceCtrl # Needed before chip.FabricAdmin
|
@@ -642,20 +643,20 @@ async def test_TC_TSTAT_4_2(self):
|
642 | 643 | self.step("18")
|
643 | 644 | if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):
|
644 | 645 |
|
| 646 | + ScenarioHeadroom = namedtuple("ScenarioHeadroom", "presetScenario remaining") |
645 | 647 | # Generate list of tuples of scenarios and number of remaining presets per scenario allowed
|
646 |
| - presetScenarioHeadroom = list((presetType.presetScenario, |
| 648 | + presetScenarioHeadrooms = list(ScenarioHeadroom(presetType.presetScenario, |
647 | 649 | presetType.numberOfPresets - presetScenarioCounts.get(presetType.presetScenario, 0)) for presetType in presetTypes)
|
648 | 650 |
|
649 |
| - if len(presetScenarioHeadroom) > 0: |
| 651 | + if presetScenarioHeadrooms: |
650 | 652 | # Find the preset scenario with the smallest number of remaining allowed presets
|
651 |
| - presetScenarioHeadroom = sorted(presetScenarioHeadroom, key=lambda diff: diff[1]) |
652 |
| - (presetScenario, headroom) = presetScenarioHeadroom[0] |
| 653 | + presetScenarioHeadrooms = sorted(presetScenarioHeadrooms, key=lambda psh: psh.remaining) |
| 654 | + presetScenarioHeadroom = presetScenarioHeadrooms[0] |
653 | 655 |
|
654 | 656 | # Add one more preset than is allowed by the preset type
|
655 | 657 | test_presets = copy.deepcopy(current_presets)
|
656 |
| - for _ in range(0, headroom + 1): |
657 |
| - test_presets.append(cluster.Structs.PresetStruct(presetHandle=NullValue, presetScenario=presetScenario, |
658 |
| - coolingSetpoint=coolSetpoint, heatingSetpoint=heatSetpoint, builtIn=False)) |
| 658 | + test_presets.extend([cluster.Structs.PresetStruct(presetHandle=NullValue, presetScenario=presetScenarioHeadroom.presetScenario, |
| 659 | + coolingSetpoint=coolSetpoint, heatingSetpoint=heatSetpoint, builtIn=False)] * (presetScenarioHeadroom.remaining + 1)) |
659 | 660 |
|
660 | 661 | await self.send_atomic_request_begin_command()
|
661 | 662 |
|
|
0 commit comments