[RVCOPSTATE-2.3] Add a check for PICS (#28588)

* check for countdowntime pics

* clean up

* address comments

* address comments

* address comments

* Revert "address comments"

This reverts commit dbdfa941f44f169734780dc008bfb015c711078e.

* add check for RVCOPSTATE.S.M.ST_RUNNING

* remove the check for paused and running pics
diff --git a/src/python_testing/TC_RVCOPSTATE_2_3.py b/src/python_testing/TC_RVCOPSTATE_2_3.py
index 405523c..c1cd3b0 100644
--- a/src/python_testing/TC_RVCOPSTATE_2_3.py
+++ b/src/python_testing/TC_RVCOPSTATE_2_3.py
@@ -55,7 +55,6 @@
 
         self.endpoint = self.matter_test_config.global_test_params['PIXIT_ENDPOINT']
 
-        asserts.assert_true(self.check_pics("RVCOPSTATE.S.A0002"), "RVCOPSTATE.S.A0002 must be supported")
         asserts.assert_true(self.check_pics("RVCOPSTATE.S.A0003"), "RVCOPSTATE.S.A0003 must be supported")
         asserts.assert_true(self.check_pics("RVCOPSTATE.S.A0004"), "RVCOPSTATE.S.A0004 must be supported")
         asserts.assert_true(self.check_pics("RVCOPSTATE.S.C00.Rsp"), "RVCOPSTATE.S.C00.Rsp must be supported")
@@ -93,25 +92,26 @@
         asserts.assert_equal(operational_state, Clusters.OperationalState.Enums.OperationalStateEnum.kPaused,
                              "OperationalState(%s) should be Paused(0x02)" % operational_state)
 
-        self.print_step(6, "Read CountdownTime attribute")
-        initial_countdown_time = await self.read_mod_attribute_expect_success(endpoint=self.endpoint,
-                                                                              attribute=attributes.CountdownTime)
-        logging.info("CountdownTime: %s" % (initial_countdown_time))
-        if initial_countdown_time is not NullValue:
-            in_range = (1 <= initial_countdown_time <= 259200)
-        asserts.assert_true(initial_countdown_time is NullValue or in_range,
-                            "invalid CountdownTime(%s). Must be in between 1 and 259200, or null" % initial_countdown_time)
+        if self.check_pics("RVCOPSTATE.S.A0002"):
+            self.print_step(6, "Read CountdownTime attribute")
+            initial_countdown_time = await self.read_mod_attribute_expect_success(endpoint=self.endpoint,
+                                                                                  attribute=attributes.CountdownTime)
+            logging.info("CountdownTime: %s" % (initial_countdown_time))
+            if initial_countdown_time is not NullValue:
+                in_range = (1 <= initial_countdown_time <= 259200)
+            asserts.assert_true(initial_countdown_time is NullValue or in_range,
+                                "invalid CountdownTime(%s). Must be in between 1 and 259200, or null" % initial_countdown_time)
 
-        self.print_step(7, "Waiting for 5 seconds")
-        time.sleep(5)
+            self.print_step(7, "Waiting for 5 seconds")
+            time.sleep(5)
 
-        self.print_step(8, "Read CountdownTime attribute")
-        countdown_time = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CountdownTime)
-        logging.info("CountdownTime: %s" % (countdown_time))
-        asserts.assert_true(countdown_time != 0 or countdown_time == NullValue,
-                            "invalid CountdownTime(%s). Must be a non zero integer, or null" % countdown_time)
-        asserts.assert_equal(countdown_time, initial_countdown_time,
-                             "CountdownTime(%s) does not equal to the intial CountdownTime (%s)" % (countdown_time, initial_countdown_time))
+            self.print_step(8, "Read CountdownTime attribute")
+            countdown_time = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CountdownTime)
+            logging.info("CountdownTime: %s" % (countdown_time))
+            asserts.assert_true(countdown_time != 0 or countdown_time == NullValue,
+                                "invalid CountdownTime(%s). Must be a non zero integer, or null" % countdown_time)
+            asserts.assert_equal(countdown_time, initial_countdown_time,
+                                 "CountdownTime(%s) does not equal to the intial CountdownTime (%s)" % (countdown_time, initial_countdown_time))
 
         self.print_step(9, "Send Pause command")
         ret = await self.send_pause_cmd()