From 3897667f159846c72abc892e719339d8ba25752e Mon Sep 17 00:00:00 2001 From: C Freeman Date: Tue, 8 Aug 2023 14:47:25 -0400 Subject: [PATCH] TC-PS-3.1: Add cluster revision check (#28482) * TC-PS-3.1: Add cluster revision check This allows the test suite to be dual-purposed against existing devices in the field as well as being used for cert. Correct cluster revision for cert testing purposes is tested in the TC-PS-1.1 test. Test: Down-rev'd one PS cluster on all clusters and removed EndpointList - saw note, test passes. * appease the linter * Change location. --- src/python_testing/TC_DeviceBasicComposition.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/python_testing/TC_DeviceBasicComposition.py b/src/python_testing/TC_DeviceBasicComposition.py index 1d3f3fc944514e..295a15cc3c559a 100644 --- a/src/python_testing/TC_DeviceBasicComposition.py +++ b/src/python_testing/TC_DeviceBasicComposition.py @@ -465,8 +465,20 @@ def test_TC_PS_3_1(self): for endpoint_id, endpoint in self.endpoints.items(): if Clusters.PowerSource not in endpoint: continue + location = AttributePathLocation(endpoint_id=endpoint_id, cluster_id=cluster_id, attribute_id=attribute_id) + cluster_revision = Clusters.PowerSource.Attributes.ClusterRevision + if cluster_revision not in endpoint[Clusters.PowerSource]: + location = AttributePathLocation(endpoint_id=endpoint_id, cluster_id=cluster_id, + attribute_id=cluster_revision.attribute_id) + self.record_error(self.get_test_name( + ), location=location, problem=f'Did not find Cluster revision on {location.as_cluster_string(self.cluster_mapper)}', spec_location='Global attributes') + if endpoint[Clusters.PowerSource][cluster_revision] < 2: + location = AttributePathLocation(endpoint_id=endpoint_id, cluster_id=cluster_id, + attribute_id=cluster_revision.attribute_id) + self.record_note(self.get_test_name(), location=location, + problem='Power source ClusterRevision is < 2, skipping remainder of test for this endpoint') + continue if Clusters.PowerSource.Attributes.EndpointList not in endpoint[Clusters.PowerSource]: - location = AttributePathLocation(endpoint_id=endpoint_id, cluster_id=cluster_id, attribute_id=attribute_id) self.record_error(self.get_test_name(), location=location, problem=f'Did not find {attribute_string} on {location.as_cluster_string(self.cluster_mapper)}', spec_location="EndpointList Attribute") success = False