[ Test ] Creating test module TC_CADMIN_1_11 (#34760)

* Creating test module TC_CADMIN_1_11:
- Test module created following matter-test-scripts task (https://github.com/project-chip/matter-test-scripts/issues/286):
-- Open commissioning window on DUT twice using ECM then BCM [DUT - Commissionee]
-- Commission DUT to TH_CR1 (can be skipped if done in a preceding test)
-- TH_CR1 reads the BasicCommissioningInfo attribute from the General Commissioning cluster on EP0 and saves the MaxCumulativeFailsafeSeconds as timeout
-- TH_CR1 sends an OpenCommissioningWindow command to the DUT with the CommissioningTimeout set to timeout
-- TH_CR2 fully commissions the DUT
-- TH_CR1 sends an OpenCommissioningWindow command to the DUT with the CommissioningTimeout set to timeout
-- TH_CR1 sends an OpenCommissioningWindow command to the DUT with the CommissioningTimeout set to timeout
-- TH_CR2 sends an OpenCommissioningWindow command to the DUT with the CommissioningTimeout set to timeout
-- TH_CR1 sends an RevokeCommissioning command to the DUT
-- TH_CR1 reads the FeatureMap from the Administrator Commissioning Cluster. If the feature map includes the BC feature bit, repeat steps 5-8 using the OpenBasicCommissioningWindow command
-- TH_CR2 reads the CurrentFabricIndex attribute from the Node Operational Credentials cluster and saves as th2_idx
-- TH_CR1 sends the RemoveFabric command to the DUT with the FabricIndex set to th2_idx

* Restyled by autopep8

* Update tests.yaml

* Update TC_CADMIN_1_11.py

Updated OpenbasicCommissioningWindow to update to using correct variables.

* Updated TC_CADMIN_1_11 test module:
- Removed unneccessary count variable due to no longer being needed
- Added expectations to TestSteps
- Replaced elif with else statements in OpenCommissioningWindow and OpenBasicCommissioningWindow functions
- Set busy_enum var using Clusters.AdministratorCommissioning.Enums.StatusCode.kBusy enum value
- Changed method to check features for administrator commissioning cluster to check if BC bit value is contained in features

* Restyled by autopep8

* Updated TC_CADMIN_1_11:
- Removed unneeded prints from the code output

* Restyled by autopep8

* Apply suggestions from code review

Co-authored-by: C Freeman <cecille@google.com>

* Update TC_CADMIN_1_11.py

-Added Optional function from typing library to resolve issue with latest code change

* Update TC_CADMIN_1_11.py

- Due to recent changes, had to update to using PyChipError for ctx.exception.err in order to handle error raised during commissioning properly

* Updating TC_CADMIN_1_11:
- Updated method for OpenBasicCommissiongWindow with BC feature enabled

* Restyled by autopep8

* Update src/python_testing/TC_CADMIN_1_11.py

Co-authored-by: C Freeman <cecille@google.com>

* Updated TC_CADMIN_1_11 test module:
- Removed useTestCommissioner when creating self.th2
- Changed to using None instead of 0 as variable value for OpenCommissioningWindow()
- Removed generate_unique_randow_value() as not needed in this test module

* Updating TC_CADMIN_1_11 test module:
- Resolved linting error

* Updated TC_CADMIN_1_11:
- Updated due to latest changes to matter_testing support module

* Restyled by autopep8

* Removed TC_CADMIN_1_11.yaml and updated TC_CADMIN_1_11:
- Removed Test_TC_CADMIN_1_11.yaml
- Updated TC_CADMIN_1_11 python test module to enable verbose output in CI/CD pipeline.

* Updated TC_CADMIN_1_11 test module:
- Updated CI/CD nominclature for this test to match latest version

* Updated src/app/tests/suites/manualTests.json:
- Removed Test_TC_CADMIN_1_11 from MultipleFabrics section

---------

Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: C Freeman <cecille@google.com>
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml
deleted file mode 100644
index 2650348..0000000
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml
+++ /dev/null
@@ -1,377 +0,0 @@
-# Copyright (c) 2021 Project CHIP Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
-
-name:
-    4.1.11. [TC-CADMIN-1.11] Open commissioning window on DUT twice using ECM
-    then BCM [DUT - Commissionee]
-
-PICS:
-    - CADMIN.S
-    - CADMIN.S.F00
-
-config:
-    nodeId: 0x12344321
-    cluster: "Basic Information"
-    endpoint: 0
-
-tests:
-    - label: "Precondition"
-      verification: |
-          Reset Devices to factory defaults
-      disabled: true
-
-    - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE"
-      PICS: CADMIN.S
-      verification: |
-          "1. Provision the DUT_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi"
-      disabled: true
-
-    - label:
-          "Step 2: TH_CR1 opens a commissioning window on DUT_CE using a
-          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
-      PICS: CADMIN.S.C00.Rsp
-      verification: |
-          On TH_CR1 send the below command
-
-          ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
-          Verify the Open commisioning window on the DUT_CE(all-cluster-app) Log:
-
-          [1660904553.796857][3537:3537] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000
-          [1660904553.796951][3537:3537] CHIP:ZCL: Received command to open commissioning window
-          [1660904553.797255][3537:3537] CHIP:IN: SecureSession[0xaaab142ef7f0]: Allocated Type:1 LSID:34523
-
-          Verify the Manual pairing code on the TH_CR1(chip-tool) Log:
-
-          [1635864513.699433][3850:3855] CHIP:DMG: ICR moving to [CommandSen]
-          [1635864513.699489][3850:3855] CHIP:CTL: Manual pairing code: [36177160937]
-          [1635864513.699566][3850:3855] CHIP:CTL: SetupQRCode: [MT:00000CQM00YZN476420]
-          [1635864513.699636][3850:3855] CHIP:EM: Sending Standalone Ack for MessageCounter:2599714227 on exchange 60688i
-          [1635864513.699685][3850:3855] CHIP:IN: Prepared plaintext message 0xffff8a7cd960 to 0x0000000000000000 of type
-      disabled: true
-
-    - label: "Step 3: DNS-SD records shows DUT_CE advertising"
-      verification: |
-          On TH_CR1 send the below command
-
-           avahi-browse -rt _matterc._udp
-          + wlp5s0 IPv6 C326228BDB082BF4                              _matterc._udp        local
-          + wlp5s0 IPv6 7B6545A75C5330BE                              _matterc._udp        local
-          = wlp5s0 IPv6 7B6545A75C5330BE                              _matterc._udp        local
-             hostname = [E45F010F27530000.local]
-             address = [fe80::e65f:1ff:fe0f:2755]
-             port = [5540]
-             txt = ["PI=" "PH=33" "CM=1" "D=3841" "T=1" "CRA=300" "CRI=5000" "VP=65521+32769"]
-          = wlp5s0 IPv6 C326228BDB082BF4                              _matterc._udp        local
-             hostname = [E45F010F27530000.local]
-             address = [fe80::e65f:1ff:fe0f:2755]
-             port = [5540]
-             txt = ["PI=" "PH=36" "CM=2" "D=3840" "T=1" "CRA=300" "CRI=5000" "VP=65521+32769"]
-          grl@grl-ThinkPad-L480:~/2nd_cntrl/connectedhomeip/examples/chip-tool/out/debug$ On TH_CR1 send the below command
-      disabled: true
-
-    - label: "Step 4: TH_CR3 Commissions with DUT_CE"
-      PICS: CADMIN.S
-      verification: |
-          On TH_CR3 send the below command
-
-          ./chip-tool pairing code 3 35484132896  --commissioner-name gamma
-
-          Verify you got below message TH_CR3(chip-tool) log
-          Device commissioning completed with success
-      disabled: true
-
-    - label:
-          "Step 5: TH_CR1 opens a commissioning window on DUT_CE using a
-          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM and
-          TH_CR2 Commissions with DUT_CE"
-      PICS: CADMIN.S.C00.Rsp
-      verification: |
-          On TH_CR1 send the below command
-
-          ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
-          Verify Manual pairing code on TH1(chip-tool) Log
-
-          0x0000000000000001 at monotonic time: 16129075 msec
-          [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen]
-          [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896]
-          [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510]
-
-          On TH_CR2 send the below command
-
-          ./chip-tool pairing code 2 35484132896  --commissioner-name beta
-
-          Verify you got below message on TH_CR2(chip-tool) log
-          Device commissioning completed with success
-      disabled: true
-
-    - label:
-          "Step 6: TH_CR1 opens a commissioning window on DUT_CE using a
-          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
-      PICS: CADMIN.S.C00.Rsp
-      verification: |
-          On TH_CR1 send the below command
-
-          ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
-          Verify the Open commisioning window on the DUT_CE(all-cluster-app) Log:
-
-          [1660904553.796857][3537:3537] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000
-          [1660904553.796951][3537:3537] CHIP:ZCL: Received command to open commissioning window
-          [1660904553.797255][3537:3537] CHIP:IN: SecureSession[0xaaab142ef7f0]: Allocated Type:1 LSID:34523
-
-          Verify the Manual pairing code on the TH_CR1(chip-tool) Log:
-
-          [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec
-          [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen]
-          [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896]
-          [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510]
-      disabled: true
-
-    - label:
-          "Step 7: Before the expiration of PIXIT.CADMIN.CwDuration seconds
-          which was set in step 5, TH_CR1 opens a 2nd commissioning window on
-          DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration
-          seconds using ECM"
-      PICS: CADMIN.S.C00.Rsp
-      verification: |
-          On TH_CR1 send the below command
-
-          Verify that the DUT_CE is rejecting the opening of second commissioning session  with  the response status 0x01 failure
-
-
-          ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
-          Verify cluster status 1 on TH_CR1(chip-tool) Log
-
-
-          [1650527291.952431][8566:8571] CHIP:DMG:
-          [1650527291.952458][8566:8571] CHIP:DMG:                                 StatusIB =
-          [1650527291.952488][8566:8571] CHIP:DMG:                                 {
-          [1650527291.952519][8566:8571] CHIP:DMG:                                         status = 0x01 (FAILURE),
-          [1650527291.952555][8566:8571] CHIP:DMG:                                         cluster-status = 0x2,
-          [1650527291.952578][8566:8571] CHIP:DMG:                                 },
-          [1650527291.952612][8566:8571] CHIP:DMG:
-          [1650527291.952634][8566:8571] CHIP:DMG:                         },
-      disabled: true
-
-    - label: "Step 8: TH_CR1 reads the list of Fabrics on DUT_CE"
-      PICS: OPCREDS.S.A0001
-      verification: |
-          On TH_CR1 send the below command
-
-          ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
-
-          Verify the list of Fabrics  consists of FabricIndex 1, FabricIndex 2, FabricIndex 3 on TH_CR1(chip-tool) log
-
-          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768
-          [1650527361.425870][15792:15797] CHIP:TOO:   Fabrics: 3 entries
-          [1650527361.426777][15792:15797] CHIP:TOO:     [1]: {
-          [1650527361.426859][15792:15797] CHIP:TOO:       RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01
-          [1650527361.426923][15792:15797] CHIP:TOO:       VendorId: 65521
-          [1650527361.426979][15792:15797] CHIP:TOO:       FabricId: 1
-          [1650527361.427033][15792:15797] CHIP:TOO:       NodeId: 1
-          [1650527361.427088][15792:15797] CHIP:TOO:       Label:
-          [1650527361.427166][15792:15797] CHIP:TOO:       FabricIndex: 1
-          [1650527361.427376][15792:15797] CHIP:TOO:      }
-          [1650527361.427464][15792:15797] CHIP:TOO:     [2]: {
-          [1650527361.427532][15792:15797] CHIP:TOO:       RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7
-          [1650527361.427595][15792:15797] CHIP:TOO:       VendorId: 65521
-          [1650527361.427649][15792:15797] CHIP:TOO:       FabricId: 1
-          [1650527361.427703][15792:15797] CHIP:TOO:       NodeId: 3
-          [1650527361.427756][15792:15797] CHIP:TOO:       Label:
-          [1650527361.427811][15792:15797] CHIP:TOO:       FabricIndex: 2
-          [1650527361.427868][15792:15797] CHIP:TOO:      }
-          [1650527361.427943][15792:15797] CHIP:TOO:     [3]: {
-          [1650527361.428008][15792:15797] CHIP:TOO:       RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD
-          [1650527361.428067][15792:15797] CHIP:TOO:       VendorId: 65521
-          [1650527361.428122][15792:15797] CHIP:TOO:       FabricId: 1
-          [1650527361.428176][15792:15797] CHIP:TOO:       NodeId: 2
-          [1650527361.428229][15792:15797] CHIP:TOO:       Label:
-          [1650527361.428282][15792:15797] CHIP:TOO:       FabricIndex: 3
-          [1650527361.428335][15792:15797] CHIP:TOO:      }
-      disabled: true
-
-    - label:
-          "Step 9: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds
-          that was set in step 6"
-      verification: |
-          Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was set in step 6
-      disabled: true
-
-    - label:
-          "Step 10: TH_CR1 re-opens a commissioning window on DUT_CE using a
-          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
-      PICS: CADMIN.S.C01.Rsp
-      verification: |
-          On TH_CR1 send the below command
-
-          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
-
-          Verify the Open commisioning window on the DUT_CE(all-cluster-app) Log:
-
-          [1660904553.796857][3537:3537] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000
-          [1660904553.796951][3537:3537] CHIP:ZCL: Received command to open commissioning window
-          [1660904553.797255][3537:3537] CHIP:IN: SecureSession[0xaaab142ef7f0]: Allocated Type:1 LSID:34523
-
-          Verify the Manual pairing code on the TH_CR1(chip-tool) Log:
-
-          [1650278416.249347][11064:11069] CHIP:DMG:                                 },
-          [1650278416.249430][11064:11069] CHIP:DMG:
-          [1650278416.249501][11064:11069] CHIP:DMG:                                 StatusIB =
-          [1650278416.249581][11064:11069] CHIP:DMG:                                 {
-          [1650278416.249664][11064:11069] CHIP:DMG:                                         status = 0x00 (SUCCESS),
-          [1650278416.249738][11064:11069] CHIP:DMG:                                 },
-          [1650278416.249823][11064:11069] CHIP:DMG:
-      disabled: true
-
-    - label: "Step 11: DNS-SD records shows DUT_CE advertising"
-      verification: |
-          On TH_CR1 send the below command
-           avahi-browse -rt _matterc._udp
-          +   eth0 IPv6 2664ED6939FC373C                              _matterc._udp        local
-          =   eth0 IPv6 2664ED6939FC373C                              _matterc._udp        local
-             hostname = [E45F010F27530000.local]
-             address = [fe80::e65f:1ff:fe0f:2753]
-             port = [5540]
-             txt = ["PI=" "PH=36" "CM=1" "D=3840" "T=1" "SAI=300" "SII=5000" "VP=65521+32769"]
-          ubuntu@ubuntu:~/may16_cntrl/connectedhomeip/examples/chip-tool/out/debug$
-      disabled: true
-
-    - label:
-          "Step 12: Before the expiration of PIXIT.CADMIN.CwDuration seconds
-          that was set in step 10, TH_CR3 opens a 2nd commissioning window on
-          DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration
-          seconds using BCM"
-      PICS: CADMIN.S.C01.Rsp
-      verification: |
-          On TH_CR3 send the below command
-
-          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 3 0 --timedInteractionTimeoutMs 1000   --commissioner-name gamma
-
-          Verify that the DUT_CE is rejecting the opening of second commissioning session  with  the response status 0x01 failure
-
-
-
-          [1650527565.991042][24618:24623] CHIP:DMG:                                 {
-          [1650527565.991112][24618:24623] CHIP:DMG:                                         EndpointId = 0x0,
-          [1650527565.991186][24618:24623] CHIP:DMG:                                         ClusterId = 0x3c,
-          [1650527565.991257][24618:24623] CHIP:DMG:                                         CommandId = 0x1,
-          [1650527565.991332][24618:24623] CHIP:DMG:                                 },
-          [1650527565.991441][24618:24623] CHIP:DMG:
-          [1650527565.991505][24618:24623] CHIP:DMG:                                 StatusIB =
-          [1650527565.991574][24618:24623] CHIP:DMG:                                 {
-          [1650527565.991645][24618:24623] CHIP:DMG:                                         status = 0x01 (FAILURE),
-          [1650527565.991743][24618:24623] CHIP:DMG:                                         cluster-status = 0x2,
-          [1650527565.991830][24618:24623] CHIP:DMG:                                 },
-          [1650527565.991918][24618:24623] CHIP:DMG:
-          [1650527565.991976][24618:24623] CHIP:DMG:                         },
-          [1650527565.992061][24618:24623] CHIP:DMG:
-          [1650527565.992116][24618:24623] CHIP:DMG:                 },
-      disabled: true
-
-    - label:
-          "Step 13: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds
-          that was set in step 11"
-      verification: |
-          Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was set in step 10
-      disabled: true
-
-    - label: "Step 14: TH_CR1 reads the list of Fabrics on DUT_CE"
-      PICS: OPCREDS.S.A0001
-      verification: |
-          On TH_CR1 send the below command
-
-          ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
-
-          Verify the list of Fabrics  consists of FabricIndex 1, FabricIndex 2, FabricIndex 3 on TH_CR1(chip-tool) log
-
-          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768
-          [1678866402.096093][704851:704853] CHIP:TOO:   Fabrics: 3 entries
-          [1678866402.096119][704851:704853] CHIP:TOO:     [1]: {
-          [1678866402.096131][704851:704853] CHIP:TOO:       RootPublicKey: 045F808373B5CED7FC2AFF99D98C2DEE6CA3889A9B078E87DAD9E263C9DEDB47AD7D31703024B72F4CB68A3017963128748FC7E97C6CBB419AF8AA914CE67D7457
-          [1678866402.096141][704851:704853] CHIP:TOO:       VendorID: 65521
-          [1678866402.096147][704851:704853] CHIP:TOO:       FabricID: 1
-          [1678866402.096154][704851:704853] CHIP:TOO:       NodeID: 1
-          [1678866402.096160][704851:704853] CHIP:TOO:       Label:
-          [1678866402.096167][704851:704853] CHIP:TOO:       FabricIndex: 1
-          [1678866402.096173][704851:704853] CHIP:TOO:      }
-          [1678866402.096185][704851:704853] CHIP:TOO:     [2]: {
-          [1678866402.096194][704851:704853] CHIP:TOO:       RootPublicKey: 0458F2B4AD99F579EC01AA271EFDDF14526CE5222BADE218C703902544430F32FA9B951963C6C03713AC63E2D95785CFCD997946098957C4F5844BD2B3916B7148
-          [1678866402.096201][704851:704853] CHIP:TOO:       VendorID: 65521
-          [1678866402.096207][704851:704853] CHIP:TOO:       FabricID: 3
-          [1678866402.096213][704851:704853] CHIP:TOO:       NodeID: 3
-          [1678866402.096219][704851:704853] CHIP:TOO:       Label:
-          [1678866402.096224][704851:704853] CHIP:TOO:       FabricIndex: 2
-          [1678866402.096230][704851:704853] CHIP:TOO:      }
-          [1678866402.096241][704851:704853] CHIP:TOO:     [3]: {
-          [1678866402.096250][704851:704853] CHIP:TOO:       RootPublicKey: 04CE10BA136D610089C4810BF963C354CE93BA61D267E8B9594977E3CC5FF30741941CE3D2A0A9E62A66AEF02CAA9F25A614F033D304D9F2ACF4204FAB68E8F773
-          [1678866402.096257][704851:704853] CHIP:TOO:       VendorID: 65521
-          [1678866402.096263][704851:704853] CHIP:TOO:       FabricID: 2
-          [1678866402.096269][704851:704853] CHIP:TOO:       NodeID: 2
-          [1678866402.096274][704851:704853] CHIP:TOO:       Label:
-          [1678866402.096280][704851:704853] CHIP:TOO:       FabricIndex: 3
-          [1678866402.096286][704851:704853] CHIP:TOO:      }
-      disabled: true
-
-    - label:
-          "Step 15: TH_CR1 opens a commissioning window on DUT_CE using a
-          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
-      PICS: CADMIN.S.C01.Rsp
-      verification: |
-          On TH_CR1 send the below command
-
-          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
-
-          Verify success response On TH_CR1(chip-tool) Log
-
-          [1650278416.249268][11064:11069] CHIP:DMG:                                         CommandId = 0x1,
-          [1650278416.249347][11064:11069] CHIP:DMG:                                 },
-          [1650278416.249430][11064:11069] CHIP:DMG:
-          [1650278416.249501][11064:11069] CHIP:DMG:                                 StatusIB =
-          [1650278416.249581][11064:11069] CHIP:DMG:                                 {
-          [1650278416.249664][11064:11069] CHIP:DMG:                                         status = 0x00 (SUCCESS),
-          [1650278416.249738][11064:11069] CHIP:DMG:                                 },
-          [1650278416.249823][11064:11069] CHIP:DMG:
-      disabled: true
-
-    - label:
-          "Step 16: Before the expiration of PIXIT.CADMIN.CwDuration seconds
-          that was set in step 14, TH_CR2 opens a second commissioning window on
-          DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration
-          seconds using BCM"
-      PICS: CADMIN.S.C01.Rsp
-      verification: |
-          On TH_CR2 send the below command
-
-          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000  --commissioner-name beta
-
-
-          Verify that the DUT_CE is rejecting the opening of second commissioning session  with  the response status 0x01 failure
-
-
-
-          [1650527622.374682][15824:15829] CHIP:DMG:                                 },
-          [1650527622.374799][15824:15829] CHIP:DMG:
-          [1650527622.374896][15824:15829] CHIP:DMG:                                 StatusIB =
-          [1650527622.374979][15824:15829] CHIP:DMG:                                 {
-          [1650527622.375086][15824:15829] CHIP:DMG:                                         status = 0x01 (FAILURE),
-          [1650527622.375236][15824:15829] CHIP:DMG:                                         cluster-status = 0x2,
-          [1650527622.375320][15824:15829] CHIP:DMG:                                 },
-          [1650527622.375426][15824:15829] CHIP:DMG:
-          [1650527622.375527][15824:15829] CHIP:DMG:                         },
-          [1650527622.375616][15824:15829] CHIP:DMG:
-      disabled: true
diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json
index 3b0b354..01d9821 100644
--- a/src/app/tests/suites/manualTests.json
+++ b/src/app/tests/suites/manualTests.json
@@ -171,7 +171,6 @@
         "Test_TC_CADMIN_1_2",
         "Test_TC_CADMIN_1_7",
         "Test_TC_CADMIN_1_8",
-        "Test_TC_CADMIN_1_11",
         "Test_TC_CADMIN_1_12",
         "Test_TC_CADMIN_1_14",
         "Test_TC_CADMIN_1_15",
diff --git a/src/python_testing/TC_CADMIN_1_11.py b/src/python_testing/TC_CADMIN_1_11.py
new file mode 100644
index 0000000..cefd8b4
--- /dev/null
+++ b/src/python_testing/TC_CADMIN_1_11.py
@@ -0,0 +1,222 @@
+#
+#    Copyright (c) 2024 Project CHIP Authors
+#    All rights reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License");
+#    you may not use this file except in compliance with the License.
+#    You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+# === BEGIN CI TEST ARGUMENTS ===
+# test-runner-runs:
+#   run1:
+#     app: ${ALL_CLUSTERS_APP}
+#     app-args: --discriminator 1234 --KVS kvs1 --trace-to json:${TRACE_APP}.json
+#     script-args: >
+#       --storage-path admin_storage.json
+#       --commissioning-method on-network
+#       --discriminator 1234
+#       --passcode 20202021
+#       --trace-to json:${TRACE_TEST_JSON}.json
+#       --trace-to perfetto:${TRACE_TEST_PERFETTO}.perfetto
+#       --PICS src/app/tests/suites/certification/ci-pics-values
+#     factory-reset: true
+#     quiet: false
+# === END CI TEST ARGUMENTS ===
+
+
+import logging
+import random
+from time import sleep
+from typing import Optional
+
+import chip.clusters as Clusters
+from chip import ChipDeviceCtrl
+from chip.ChipDeviceCtrl import CommissioningParameters
+from chip.exceptions import ChipStackError
+from chip.native import PyChipError
+from matter_testing_infrastructure.chip.testing.matter_testing import (MatterBaseTest, TestStep, async_test_body,
+                                                                       default_matter_test_main)
+from mobly import asserts
+
+
+class TC_CADMIN_1_11(MatterBaseTest):
+    async def OpenCommissioningWindow(self, th, expectedErrCode) -> CommissioningParameters:
+        if expectedErrCode is None:
+            params = await th.OpenCommissioningWindow(
+                nodeid=self.dut_node_id, timeout=self.timeout, iteration=10000, discriminator=self.discriminator, option=1)
+            return params
+
+        else:
+            ctx = asserts.assert_raises(ChipStackError)
+            with ctx:
+                await th.OpenCommissioningWindow(
+                    nodeid=self.dut_node_id, timeout=self.timeout, iteration=10000, discriminator=self.discriminator, option=1)
+            errcode = PyChipError.from_code(ctx.exception.err)
+            logging.info('Commissioning complete done. Successful? {}, errorcode = {}'.format(errcode.is_success, errcode))
+            asserts.assert_false(errcode.is_success, 'Commissioning complete did not error as expected')
+            asserts.assert_true(errcode.sdk_code == expectedErrCode,
+                                'Unexpected error code returned from CommissioningComplete')
+
+    async def OpenBasicCommissioningWindow(self, th: ChipDeviceCtrl, expectedErrCode: Optional[Clusters.AdministratorCommissioning.Enums.StatusCode] = None) -> CommissioningParameters:
+        if not expectedErrCode:
+            params = await th.OpenBasicCommissioningWindow(
+                nodeid=self.dut_node_id, timeout=self.timeout)
+            return params
+
+        else:
+            ctx = asserts.assert_raises(ChipStackError)
+            with ctx:
+                await th.OpenBasicCommissioningWindow(
+                    nodeid=self.dut_node_id, timeout=self.timeout)
+            errcode = ctx.exception.chip_error
+            logging.info('Commissioning complete done. Successful? {}, errorcode = {}'.format(errcode.is_success, errcode))
+            asserts.assert_false(errcode.is_success, 'Commissioning complete did not error as expected')
+            asserts.assert_true(errcode.sdk_code == expectedErrCode,
+                                'Unexpected error code returned from CommissioningComplete')
+
+    async def read_currentfabricindex(self, th: ChipDeviceCtrl) -> int:
+        cluster = Clusters.OperationalCredentials
+        attribute = Clusters.OperationalCredentials.Attributes.CurrentFabricIndex
+        current_fabric_index = await self.read_single_attribute_check_success(dev_ctrl=th, endpoint=0, cluster=cluster, attribute=attribute)
+        return current_fabric_index
+
+    def steps_TC_CADMIN_1_11(self) -> list[TestStep]:
+        return [
+            TestStep(1, "Commissioning, already done", is_commissioning=True),
+            TestStep(
+                2, "TH_CR1 gets the MaxCumulativeFailsafeSeconds value from BasicCommissioningInfo attribute in GeneralCommissioning Cluster", "Should set the MaxCumulativeFailsafeSeconds value from BasicCommissioningInfo attribute to timeout"),
+            TestStep(
+                3, "TH_CR1 opens commissioning window on DUT with duration set to value for MaxCumulativeFailsafeSeconds", "Commissioning window should open with timeout set to MaxCumulativeFailsafeSeconds"),
+            TestStep(4, "TH_CR2 fully commissions the DUT", "DUT should fully commission"),
+            TestStep(
+                5, "TH_CR1 opens commissioning window on DUT with duration set to value from BasicCommissioningInfo", "New commissioning window should open and be set to timeout"),
+            TestStep(6, "TH_CR1 sends an OpenCommissioningWindow command to the DUT and attempts to open another commissioning window",
+                     "Commissioning window should fail to be opened due to being busy"),
+            TestStep(7, "TH_CR2 sends an OpenCommissioningWindow command to the DUT and attempts to open another commissioning window",
+                     "Commissioning window should fail to be opened due to being busy"),
+            TestStep(8, "TH_CR1 sends an RevokeCommissioning command to the DUT", "Commissioning window should be closed"),
+            TestStep(9, "TH_CR1 reads the FeatureMap from the Administrator Commissioning Cluster to check to see if BC is supported on DUT",
+                     "FeatureMap should be checked to see if BC enum is available feature, if not then test steps 9a-9d will be skipped"),
+            TestStep("9a", "TH_CR1 opens commissioning window on DUT with duration set to value from BasicCommissioningInfo",
+                     "Opens basic commissioning window on the DUT for timeout set to value of MaxCumulativeFailsafeSeconds"),
+            TestStep("9b", "TH_CR1 sends an OpenBasicCommissioningWindow command to the DUT and attempts to open another commissioning window",
+                     "Commissioning window should fail to be opened due to being busy"),
+            TestStep("9c", "TH_CR2 sends an OpenBasicCommissioningWindow command to the DUT and attempts to open another commissioning window",
+                     "Commissioning window should fail to be opened due to being busy"),
+            TestStep("9d", "TH_CR1 sends a RevokeCommissioning command to the DUT", "Commissioning window should be closed"),
+            TestStep(10, "TH_CR2 reads the CurrentFabricIndex attribute from the Operational Credentials cluster and saves as th2_idx",
+                     "th2_idx set to value for CurrentFabricIndex attribute from TH_CR2"),
+            TestStep(11, "TH_CR1 sends the RemoveFabric command to the DUT with the FabricIndex set to th2_idx",
+                     "TH_CR1 removes TH_CR2 fabric using th2_idx"),
+        ]
+
+    async def CommissionAttempt(
+            self, setupPinCode: int):
+
+        logging.info("-----------------Commissioning with TH_CR2-------------------------")
+        await self.th2.CommissionOnNetwork(
+            nodeId=self.dut_node_id, setupPinCode=setupPinCode,
+            filterType=ChipDeviceCtrl.DiscoveryFilterType.LONG_DISCRIMINATOR, filter=self.discriminator)
+
+    def pics_TC_CADMIN_1_11(self) -> list[str]:
+        return ["CADMIN.S"]
+
+    @async_test_body
+    async def test_TC_CADMIN_1_11(self):
+        self.step(1)
+
+        # Establishing TH1 and TH2 controllers
+        self.th1 = self.default_controller
+        self.discriminator = random.randint(0, 4095)
+        th2_certificate_authority = self.certificate_authority_manager.NewCertificateAuthority()
+        th2_fabric_admin = th2_certificate_authority.NewFabricAdmin(vendorId=0xFFF1, fabricId=self.th1.fabricId + 1)
+        self.th2 = th2_fabric_admin.NewController(nodeId=2)
+
+        self.step(2)
+        GC_cluster = Clusters.GeneralCommissioning
+        attribute = GC_cluster.Attributes.BasicCommissioningInfo
+        duration = await self.read_single_attribute_check_success(endpoint=0, cluster=GC_cluster, attribute=attribute)
+        self.timeout = duration.maxCumulativeFailsafeSeconds
+
+        self.step(3)
+        params = await self.OpenCommissioningWindow(self.th1, None)
+        setupPinCode = params.setupPinCode
+        busy_enum = Clusters.AdministratorCommissioning.Enums.StatusCode.kBusy
+
+        self.step(4)
+        await self.CommissionAttempt(setupPinCode)
+
+        self.step(5)
+        await self.OpenCommissioningWindow(self.th1, None)
+
+        self.step(6)
+        await self.OpenCommissioningWindow(self.th1, busy_enum)
+
+        self.step(7)
+        await self.OpenCommissioningWindow(self.th2, busy_enum)
+
+        self.step(8)
+        revokeCmd = Clusters.AdministratorCommissioning.Commands.RevokeCommissioning()
+        await self.th1.SendCommand(nodeid=self.dut_node_id, endpoint=0, payload=revokeCmd, timedRequestTimeoutMs=6000)
+        # The failsafe cleanup is scheduled after the command completes, so give it a bit of time to do that
+        sleep(1)
+
+        self.step(9)
+
+        AC_cluster = Clusters.AdministratorCommissioning
+        fm_attribute = Clusters.AdministratorCommissioning.Attributes
+        features = await self.read_single_attribute_check_success(cluster=AC_cluster, attribute=fm_attribute.FeatureMap)
+
+        self.supports_bc = bool(features & AC_cluster.Bitmaps.Feature.kBasic) != 0
+
+        if self.supports_bc:
+            self.count = 0
+            self.step("9a")
+            obcCmd = Clusters.AdministratorCommissioning.Commands.OpenBasicCommissioningWindow(180)
+            await self.th1.SendCommand(nodeid=self.dut_node_id, endpoint=0, payload=obcCmd, timedRequestTimeoutMs=6000)
+
+            self.step("9b")
+            try:
+                await self.th1.SendCommand(nodeid=self.dut_node_id, endpoint=0, payload=obcCmd, timedRequestTimeoutMs=6000)
+            except Exception as e:
+                asserts.assert_true(e.clusterStatus == busy_enum,
+                                    'Unexpected error code returned from CommissioningComplete')
+
+            self.step("9c")
+            try:
+                await self.th2.SendCommand(nodeid=self.dut_node_id, endpoint=0, payload=obcCmd, timedRequestTimeoutMs=6000)
+            except Exception as e:
+                asserts.assert_true(e.clusterStatus == busy_enum,
+                                    'Unexpected error code returned from CommissioningComplete')
+
+            self.step("9d")
+            revokeCmd = Clusters.AdministratorCommissioning.Commands.RevokeCommissioning()
+            await self.th1.SendCommand(nodeid=self.dut_node_id, endpoint=0, payload=revokeCmd, timedRequestTimeoutMs=6000)
+            # The failsafe cleanup is scheduled after the command completes, so give it a bit of time to do that
+            sleep(1)
+
+        else:
+            self.skip_step("9a")
+            self.skip_step("9b")
+            self.skip_step("9c")
+            self.skip_step("9d")
+
+        # Read CurrentFabricIndex attribute from the Operational Credentials cluster
+        self.step(10)
+        th2_idx = await self.read_currentfabricindex(self.th2)
+
+        self.step(11)
+        removeFabricCmd = Clusters.OperationalCredentials.Commands.RemoveFabric(th2_idx)
+        await self.th1.SendCommand(nodeid=self.dut_node_id, endpoint=0, payload=removeFabricCmd)
+
+
+if __name__ == "__main__":
+    default_matter_test_main()