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