Skip to content

Commit

Permalink
[Fix] Created possible fix for issue project-chip#229: Remove PICS fr…
Browse files Browse the repository at this point in the history
…om python PWRTL tests (project-chip#34094)

* Created possible fix for issue project-chip#229:
- Removed PICS if statements from TC_PWRTL_2_1 test module
- Added if statements to check if attribute ID's for available and active endpoints gathered from DUT's are contained in attribute list
- Updated method from NullValue to also include checking for empty lists from DUT's for available and active endpoints

* Restyled by autopep8

* Updated TC_PWRTL_2_1.py:
- Added else condition to return for cases where active or available attribute ID's were not in attibute list on DUT

* Restyled by autopep8

* Updated TC_PWRTL_2_1 test module:
- Replaced method for setting endpoint variable
- Removed null check for available endpoints in test step 2.
- Reworded verbiage for skipping test step 3 if condition is not met.

* Restyled by autopep8

* Updated TC_PWRTL_2_1 test module

- Fixed found linting errors

* Updated TC_PWRTL_2_1 test module:
- Resolved new found linting errors.

* Restyled by autopep8

* Apply suggestions from code review

Co-authored-by: C Freeman <[email protected]>

* Update src/python_testing/TC_PWRTL_2_1.py

Co-authored-by: C Freeman <[email protected]>

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: C Freeman <[email protected]>
  • Loading branch information
3 people authored Oct 29, 2024
1 parent fa46641 commit 3d80093
Showing 1 changed file with 30 additions and 17 deletions.
47 changes: 30 additions & 17 deletions src/python_testing/TC_PWRTL_2_1.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,30 +53,43 @@ async def test_TC_PWRTL_2_1(self):

endpoint = self.user_params.get("endpoint", 1)

self.print_step(1, "Commissioning, already done")
powertop_attr_list = Clusters.Objects.PowerTopology.Attributes.AttributeList
powertop_cluster = Clusters.Objects.PowerTopology
attribute_list = await self.read_single_attribute_check_success(endpoint=endpoint, cluster=powertop_cluster, attribute=powertop_attr_list)
avail_endpoints_attr_id = Clusters.Objects.PowerTopology.Attributes.ActiveEndpoints.attribute_id
act_endpoints_attr_id = Clusters.Objects.PowerTopology.Attributes.AvailableEndpoints.attribute_id

if not self.check_pics("PWRTL.S.A0000"):
logging.info("Test skipped because PICS PWRTL.S.A0000 is not set")
return
self.print_step(1, "Commissioning, already done")

self.print_step(2, "Read AvailableAttributes attribute")
available_endpoints = await self.read_single_attribute_check_success(endpoint=endpoint, cluster=Clusters.Objects.PowerTopology, attribute=attributes.AvailableEndpoints)
if avail_endpoints_attr_id in attribute_list:
available_endpoints = await self.read_single_attribute_check_success(endpoint=endpoint, cluster=Clusters.Objects.PowerTopology, attribute=attributes.AvailableEndpoints)

asserts.assert_less_equal(len(available_endpoints), 20,
"AvailableEndpoints length %d must be less than 21!" % len(available_endpoints))
if available_endpoints == []:
logging.info("AvailableEndpoints is an empty list")
else:
logging.info("AvailableEndpoints: %s" % (available_endpoints))
asserts.assert_less_equal(len(available_endpoints), 20,
"AvailableEndpoints length %d must be less than 21!" % len(available_endpoints))

if not self.check_pics("PWRTL.S.A0001"):
logging.info("Test skipped because PICS PWRTL.S.A0001 is not set")
return
else:
self.mark_current_step_skipped()

self.print_step(3, "Read ActiveEndpoints attribute")
active_endpoints = await self.read_single_attribute_check_success(endpoint=endpoint, cluster=Clusters.Objects.PowerTopology, attribute=attributes.ActiveEndpoints)
logging.info("ActiveEndpoints: %s" % (active_endpoints))
asserts.assert_less_equal(len(active_endpoints), 20,
"ActiveEndpoints length %d must be less than 21!" % len(active_endpoints))
# Verify that ActiveEndpoints is a subset of AvailableEndpoints
asserts.assert_true(set(active_endpoints).issubset(set(available_endpoints)),
"ActiveEndpoints should be a subset of AvailableEndpoints")

if act_endpoints_attr_id in attribute_list:
active_endpoints = await self.read_single_attribute_check_success(endpoint=endpoint, cluster=Clusters.Objects.PowerTopology, attribute=attributes.ActiveEndpoints)
logging.info("ActiveEndpoints: %s" % (active_endpoints))
asserts.assert_less_equal(len(active_endpoints), 20,
"ActiveEndpoints length %d must be less than 21!" % len(active_endpoints))

if available_endpoints == []:
# Verify that ActiveEndpoints is a subset of AvailableEndpoints
asserts.assert_true(set(active_endpoints).issubset(set(available_endpoints)),
"ActiveEndpoints should be a subset of AvailableEndpoints")

else:
self.mark_current_step_skipped()


if __name__ == "__main__":
Expand Down

0 comments on commit 3d80093

Please sign in to comment.