Update boolcfg-3-1 to match latest test plan (#32075)

diff --git a/src/python_testing/TC_BOOLCFG_3_1.py b/src/python_testing/TC_BOOLCFG_3_1.py
index ceeeba3..fb45e60 100644
--- a/src/python_testing/TC_BOOLCFG_3_1.py
+++ b/src/python_testing/TC_BOOLCFG_3_1.py
@@ -36,7 +36,8 @@
         steps = [
             TestStep(1, "Commissioning, already done", is_commissioning=True),
             TestStep("2a", "Read FeatureMap attribute"),
-            TestStep("2b", "Read AttributeList attribute"),
+            TestStep("2b", "Verify SENS feature is supported"),
+            TestStep("2c", "Read AttributeList attribute"),
             TestStep(3, "Read SupportedSensitivityLevels attribute"),
             TestStep(4, "Read DefaultSensitivityLevel attribute, if supported"),
             TestStep(5, "Read CurrentSensitivityLevel attribute"),
@@ -65,19 +66,26 @@
 
         self.step("2a")
         feature_map = await self.read_boolcfg_attribute_expect_success(endpoint=endpoint, attribute=attributes.FeatureMap)
-
-        self.step("2b")
-        attribute_list = await self.read_boolcfg_attribute_expect_success(endpoint=endpoint, attribute=attributes.AttributeList)
-
         is_sens_level_feature_supported = feature_map & Clusters.BooleanStateConfiguration.Bitmaps.Feature.kSensitivityLevel
 
-        self.step(3)
-        if is_sens_level_feature_supported:
-            numberOfSupportedLevels = await self.read_boolcfg_attribute_expect_success(endpoint=endpoint, attribute=attributes.SupportedSensitivityLevels)
+        self.step("2b")
+        if not is_sens_level_feature_supported:
+            logging.info("SENS feature not supported, skipping test case")
+
+            # Skipping all remainig steps
+            for step in self.get_test_steps(self.current_test_info.name)[self.current_step_index:]:
+                self.step(step.test_plan_number)
+                logging.info("Test step skipped")
+
+            return
         else:
             logging.info("Test step skipped")
 
-        default_level = 0
+        self.step("2c")
+        attribute_list = await self.read_boolcfg_attribute_expect_success(endpoint=endpoint, attribute=attributes.AttributeList)
+
+        self.step(3)
+        numberOfSupportedLevels = await self.read_boolcfg_attribute_expect_success(endpoint=endpoint, attribute=attributes.SupportedSensitivityLevels)
 
         self.step(4)
         if attributes.DefaultSensitivityLevel.attribute_id in attribute_list:
@@ -85,20 +93,14 @@
         else:
             logging.info("Test step skipped")
 
-        current_level = 0
-
         self.step(5)
-        if is_sens_level_feature_supported:
-            current_level = await self.read_boolcfg_attribute_expect_success(endpoint=endpoint, attribute=attributes.CurrentSensitivityLevel)
-        else:
-            logging.info("Test step skipped")
+        current_level = await self.read_boolcfg_attribute_expect_success(endpoint=endpoint, attribute=attributes.CurrentSensitivityLevel)
 
         self.step(6)
-        if is_sens_level_feature_supported:
-            for sens_level in range(numberOfSupportedLevels):
-                logging.info(f"Write sensitivity level ({sens_level}) to CurrentSensitivityLevel)")
-                result = await self.default_controller.WriteAttribute(self.dut_node_id, [(endpoint, attributes.CurrentSensitivityLevel(sens_level))])
-                asserts.assert_equal(result[0].Status, Status.Success, "CurrentSensitivityLevel write failed")
+        for sens_level in range(numberOfSupportedLevels):
+            logging.info(f"Write sensitivity level ({sens_level}) to CurrentSensitivityLevel)")
+            result = await self.default_controller.WriteAttribute(self.dut_node_id, [(endpoint, attributes.CurrentSensitivityLevel(sens_level))])
+            asserts.assert_equal(result[0].Status, Status.Success, "CurrentSensitivityLevel write failed")
 
         self.step(7)
         if attributes.DefaultSensitivityLevel.attribute_id in attribute_list:
@@ -114,21 +116,18 @@
             asserts.assert_equal(result[0].Status, Status.Success, "CurrentSensitivityLevel write failed")
 
         self.step(9)
-        if is_sens_level_feature_supported:
-            result = await self.default_controller.WriteAttribute(self.dut_node_id, [(endpoint, attributes.CurrentSensitivityLevel(numberOfSupportedLevels))])
-            asserts.assert_equal(result[0].Status, Status.ConstraintError,
-                                 "CurrentSensitivityLevel did not return CONSTRAINT_ERROR")
+        result = await self.default_controller.WriteAttribute(self.dut_node_id, [(endpoint, attributes.CurrentSensitivityLevel(numberOfSupportedLevels))])
+        asserts.assert_equal(result[0].Status, Status.ConstraintError,
+                             "CurrentSensitivityLevel did not return CONSTRAINT_ERROR")
 
         self.step(10)
-        if is_sens_level_feature_supported:
-            result = await self.default_controller.WriteAttribute(self.dut_node_id, [(endpoint, attributes.CurrentSensitivityLevel(255))])
-            asserts.assert_equal(result[0].Status, Status.ConstraintError,
-                                 "CurrentSensitivityLevel did not return CONSTRAINT_ERROR")
+        result = await self.default_controller.WriteAttribute(self.dut_node_id, [(endpoint, attributes.CurrentSensitivityLevel(255))])
+        asserts.assert_equal(result[0].Status, Status.ConstraintError,
+                             "CurrentSensitivityLevel did not return CONSTRAINT_ERROR")
 
         self.step(11)
-        if is_sens_level_feature_supported:
-            result = await self.default_controller.WriteAttribute(self.dut_node_id, [(endpoint, attributes.CurrentSensitivityLevel(current_level))])
-            asserts.assert_equal(result[0].Status, Status.Success, "CurrentSensitivityLevel write failed")
+        result = await self.default_controller.WriteAttribute(self.dut_node_id, [(endpoint, attributes.CurrentSensitivityLevel(current_level))])
+        asserts.assert_equal(result[0].Status, Status.Success, "CurrentSensitivityLevel write failed")
 
 
 if __name__ == "__main__":