Refactoring of support test scripts to enhance matter testing infrastructure (#34785)

* Refactoring of the matter testing infrastructure

* Restyled by shfmt

* Manually fix restyle

* Manually fix restyle

* Manually restyle

* Manually fix restyle

* Manually fix restyle

* Renamed testing_support to matter_testing _support

* Fixed the support scripts from matter_testing_support

* Fixed TC_OVENOPSTATE_2_6.py for import command

* replace all os.path.join and such (using _file_) with their own method

* Fixed paths.py for import

* Fixed imports for TC_DeviceConformace.py

* Fixed the broken import for matter_testing

* Make sure modules match master

* Debug the data model files for spec_parsing

* Try to guess data model root

* Restyle

* Moving Test* from python_testing to matter_testing_support

* Removed the tests moved from glob python scripts

* Restyled by isort

* Added taglist_and_topology_test.py to the support tests list

* Restyled by isort

* Fixed the structure for accessing example_pics_xml_basic_info.xml

* Fixing the TC_RVCCLEANM_2_2.py script according to master changes

* Changes according to master

* Fixing structuring of TestMatterTestingSupport.py and TestSpecParsingSupport.py

* Restyled by isort

* Fixed typo on src/python_testing/matter_testing_infrastructure/BUILD.gn tests section

* Fixed import for TC_ICDM_3_2.py

* Fix Import for TC_RVCCLEANM_2_2.py

* Restyled by autopep8

* Update line formatting in TestSpecParsingSupport.py

* Fixed comment on execute_python_tests.py

* tests.yaml test

* Test to fix src/python_testing/test_testing directory imports

* Restyled by isort

* Fixed code lints

* Fix imports for test_testing directory

* Fixed imports on test_TC_ICDM_2_1.py

* Restyled by autopep8

* Restyled by isort

* Updated imported fixes on test_TC_ICDM_2_1.py

* Restyled by autopep8

* Restyled by isort

* Import fixes for parent directory test imports

* Fixing try-except imports for test_testing directory scripts

* Remove unwanted import os from 2 scripts

* Restyled by isort

* Restyled by isort

* Restyled by autopep8

* Restyled by isort

* Updated paths and spec_xml scripts

* Fixed unused imports

* Restyled by isort

* Try to guess data model root

* Fixed wrong string via GUI that was set in vscode

* Fix matter_testing imports

* Comment

* Remove comment

* Fixed import and improved logging via flush of stdout

* Fixed matter support import for test scripts

* Restyled by isort

* Fixed "os.environ is not callable, it is a dictionary"

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Import fixed for TC_CCTRL_2_3.py

* Update logic to match master

* Fixed multiple executions of the same tests

* Fixed test_testing scripts with master

* Restyled by isort

* Fixing code lints

* Restyled by autopep8

* Fix formate changes happened with autosave on TestSpecParsingSupport.py

* Fixed module import in MockTestRunner script

* Restructured the tasks.py scripts in matter_testing_support

* Fixed formatting

* Restyled by shfmt

* Restyled by isort

* Fixed code lints

* Fixed imports for the new scripts added

* Fixed k1_4 for the test script

* Restyled by autopep8

* Fixed import for new scripts added

* Added support for v1_4

* Update TestSpecParsingSupport.py

* Added the missed part of the code after hard reset from commit d0e36909af460b490565b1798bc7b4f0042a8545

* Print statements to test

* Update TestSpecParsingSupport.py

* Added in_progress for DEFAULT_OUTPUT_DIR_IN_PROGRESS

* Added support for conformance_support in atomic attributes

* Removing test prints statements

* Restyled by isort

* Checking in Thermostat's Revision

* Check and Verified Cluster Thermostats's Revision

* Restyled by isort

* Fixed improts with news supports apps.py

* Restyled by isort

* Fixed imports for ECOINFO scripts

* Restyled by isort

* Renamed matter_testing_support to chip.testing

* Update TestSpecParsingSupport.py

* Restyled by shfmt

* Restyled by isort

* Update build_python.sh

* Fix imports for TC_SWITCH.py script

* Restyled by isort

---------

Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: Andrei Litvin <andy314@gmail.com>
diff --git a/docs/testing/python.md b/docs/testing/python.md
index a957074..4541871 100644
--- a/docs/testing/python.md
+++ b/docs/testing/python.md
@@ -25,7 +25,7 @@
         section should include various parameters and their respective values,
         which will guide the test runner on how to execute the tests.
 -   All test classes inherit from `MatterBaseTest` in
-    [matter_testing_support.py](https://github.com/project-chip/connectedhomeip/blob/master/src/python_testing/matter_testing_support.py)
+    [matter_testing.py](https://github.com/project-chip/connectedhomeip/blob/master/src/python_testing/matter_testing_infrastructure/chip/testing/matter_testing.py)
     -   Support for commissioning using the python controller
     -   Default controller (`self.default_controller`) of type `ChipDeviceCtrl`
     -   `MatterBaseTest` inherits from the Mobly BaseTestClass
@@ -38,7 +38,7 @@
         decorated with the @async_test_body decorator
 -   Use `ChipDeviceCtrl` to interact with the DUT
     -   Controller API is in `ChipDeviceCtrl.py` (see API doc in file)
-    -   Some support methods in `matter_testing_support.py`
+    -   Some support methods in `matter_testing.py`
 -   Use Mobly assertions for failing tests
 -   `self.step()` along with a `steps_*` method to mark test plan steps for cert
     tests
@@ -379,7 +379,7 @@
 ## Mobly helpers
 
 The test system is based on Mobly, and the
-[matter_testing_support.py](https://github.com/project-chip/connectedhomeip/blob/master/src/python_testing/matter_testing_support.py)
+[matter_testing.py](https://github.com/project-chip/connectedhomeip/blob/master/src/python_testing/matter_testing_infrastructure/chip/testing/matter_testing.py)
 class provides some helpers for Mobly integration.
 
 -   `default_matter_test_main`
@@ -561,11 +561,11 @@
 
 ## Other support utilities
 
--   `basic_composition_support`
+-   `basic_composition`
     -   wildcard read, whole device analysis
 -   `CommissioningFlowBlocks`
     -   various commissioning support for core tests
--   `spec_parsing_support`
+-   `spec_parsing`
     -   parsing data model XML into python readable format
 
 # Running tests locally
diff --git a/scripts/spec_xml/generate_spec_xml.py b/scripts/spec_xml/generate_spec_xml.py
index 0d41b3f..43582fd 100755
--- a/scripts/spec_xml/generate_spec_xml.py
+++ b/scripts/spec_xml/generate_spec_xml.py
@@ -24,26 +24,17 @@
 from pathlib import Path
 
 import click
+from paths import Branch, get_chip_root, get_data_model_path, get_documentation_file_path, get_in_progress_defines
 
-DEFAULT_CHIP_ROOT = os.path.abspath(
-    os.path.join(os.path.dirname(__file__), '..', '..'))
-DEFAULT_OUTPUT_DIR_1_3 = os.path.abspath(
-    os.path.join(DEFAULT_CHIP_ROOT, 'data_model', '1.3'))
-DEFAULT_OUTPUT_DIR_IN_PROGRESS = os.path.abspath(
-    os.path.join(DEFAULT_CHIP_ROOT, 'data_model', 'in_progress'))
-DEFAULT_OUTPUT_DIR_TOT = os.path.abspath(
-    os.path.join(DEFAULT_CHIP_ROOT, 'data_model', 'master'))
-DEFAULT_DOCUMENTATION_FILE = os.path.abspath(
-    os.path.join(DEFAULT_CHIP_ROOT, 'docs', 'spec_clusters.md'))
+# Use the get_in_progress_defines() function to fetch the in-progress defines
+CURRENT_IN_PROGRESS_DEFINES = get_in_progress_defines()
 
-# questions
-# is energy-calendar still in?
-# is heat-pump out? wasn't in 0.7
-# location-cluster - is this define gone now?
-# queuedpreset - is this define gone now?
-CURRENT_IN_PROGRESS_DEFINES = ['aliro', 'atomicwrites', 'battery-storage', 'device-location', 'e2e-jf', 'energy-calendar', 'energy-drlc',
-                               'energy-management', 'heat-pump', 'hrap-1', 'hvac', 'matter-fabric-synchronization', 'metering', 'secondary-net',
-                               'service-area-cluster', 'solar-power', 'tcp', 'water-heater', 'wifiSetup']
+# Replace hardcoded paths with dynamic paths using paths.py functions
+DEFAULT_CHIP_ROOT = get_chip_root()
+DEFAULT_OUTPUT_DIR_1_3 = get_data_model_path(Branch.V1_3)
+DEFAULT_OUTPUT_DIR_IN_PROGRESS = get_data_model_path(Branch.IN_PROGRESS)
+DEFAULT_OUTPUT_DIR_TOT = get_data_model_path(Branch.MASTER)
+DEFAULT_DOCUMENTATION_FILE = get_documentation_file_path()
 
 
 def get_xml_path(filename, output_dir):
@@ -90,7 +81,6 @@
     '--include-in-progress',
     type=click.Choice(['All', 'None', 'Current']), default='All')
 def main(scraper, spec_root, output_dir, dry_run, include_in_progress):
-    # Clusters need to be scraped first because the cluster directory is passed to the device type directory
     if not output_dir:
         output_dir_map = {'All': DEFAULT_OUTPUT_DIR_TOT, 'None': DEFAULT_OUTPUT_DIR_1_3, 'Current': DEFAULT_OUTPUT_DIR_IN_PROGRESS}
         output_dir = output_dir_map[include_in_progress]
@@ -103,30 +93,28 @@
 
 def scrape_clusters(scraper, spec_root, output_dir, dry_run, include_in_progress):
     src_dir = os.path.abspath(os.path.join(spec_root, 'src'))
-    sdm_clusters_dir = os.path.abspath(
-        os.path.join(src_dir, 'service_device_management'))
+    sdm_clusters_dir = os.path.abspath(os.path.join(src_dir, 'service_device_management'))
     app_clusters_dir = os.path.abspath(os.path.join(src_dir, 'app_clusters'))
     dm_clusters_dir = os.path.abspath(os.path.join(src_dir, 'data_model'))
-    media_clusters_dir = os.path.abspath(
-        os.path.join(app_clusters_dir, 'media'))
-    clusters_output_dir = os.path.abspath(os.path.join(output_dir, 'clusters'))
+    media_clusters_dir = os.path.abspath(os.path.join(app_clusters_dir, 'media'))
+
+    clusters_output_dir = os.path.join(output_dir, 'clusters')
 
     if not os.path.exists(clusters_output_dir):
         os.makedirs(clusters_output_dir)
 
-    print('Generating main spec to get file include list - this make take a few minutes')
+    print('Generating main spec to get file include list - this may take a few minutes')
     main_out = make_asciidoc('pdf', include_in_progress, spec_root, dry_run)
-    print('Generating cluster spec to get file include list - this make take a few minutes')
+    print('Generating cluster spec to get file include list - this may take a few minutes')
     cluster_out = make_asciidoc('pdf-appclusters-book', include_in_progress, spec_root, dry_run)
 
     def scrape_cluster(filename: str) -> None:
         base = Path(filename).stem
         if base not in main_out and base not in cluster_out:
-            print(f'skipping file: {base} as it is not compiled into the asciidoc')
+            print(f'Skipping file: {base} as it is not compiled into the asciidoc')
             return
         xml_path = get_xml_path(filename, clusters_output_dir)
-        cmd = [scraper, 'cluster', '-i', filename, '-o',
-               xml_path, '-nd']
+        cmd = [scraper, 'cluster', '-i', filename, '-o', xml_path, '-nd']
         if include_in_progress == 'All':
             cmd.extend(['--define', 'in-progress'])
         elif include_in_progress == 'Current':
@@ -150,33 +138,29 @@
         tree = ElementTree.parse(f'{xml_path}')
         root = tree.getroot()
         cluster = next(root.iter('cluster'))
-        # If there's no cluster ID table, this isn't a cluster
         try:
             next(cluster.iter('clusterIds'))
         except StopIteration:
-            # If there's no cluster ID table, this isn't a cluster just some kind of intro adoc
             print(f'Removing file {xml_path} as it does not include any cluster definitions')
             os.remove(xml_path)
             continue
 
 
 def scrape_device_types(scraper, spec_root, output_dir, dry_run, include_in_progress):
-    device_type_dir = os.path.abspath(
-        os.path.join(spec_root, 'src', 'device_types'))
-    device_types_output_dir = os.path.abspath(
-        os.path.join(output_dir, 'device_types'))
+    device_type_dir = os.path.abspath(os.path.join(spec_root, 'src', 'device_types'))
+    device_types_output_dir = os.path.abspath(os.path.join(output_dir, 'device_types'))
     clusters_output_dir = os.path.abspath(os.path.join(output_dir, 'clusters'))
 
     if not os.path.exists(device_types_output_dir):
         os.makedirs(device_types_output_dir)
 
-    print('Generating device type library to get file include list - this make take a few minutes')
+    print('Generating device type library to get file include list - this may take a few minutes')
     device_type_output = make_asciidoc('pdf-devicelibrary-book', include_in_progress, spec_root, dry_run)
 
     def scrape_device_type(filename: str) -> None:
         base = Path(filename).stem
         if base not in device_type_output:
-            print(f'skipping file: {filename} as it is not compiled into the asciidoc')
+            print(f'Skipping file: {filename} as it is not compiled into the asciidoc')
             return
         xml_path = get_xml_path(filename, device_types_output_dir)
         cmd = [scraper, 'devicetype', '-c', '-cls', clusters_output_dir,
diff --git a/scripts/spec_xml/paths.py b/scripts/spec_xml/paths.py
new file mode 100644
index 0000000..3a5159c
--- /dev/null
+++ b/scripts/spec_xml/paths.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2024 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.
+
+import os
+from enum import Enum
+
+# Define a branch enum for different versions or branches
+
+
+class Branch(Enum):
+    MASTER = "master"
+    V1_3 = "v1_3"
+    V1_4 = "v1_4"
+    IN_PROGRESS = "in_progress"
+
+
+def get_chip_root():
+    """
+    Returns the CHIP root directory, trying the environment variable first 
+    and falling back if necessary.
+    """
+    chip_root = os.getenv('PW_PROJECT_ROOT')
+    if chip_root:
+        return chip_root
+    else:
+        try:
+            return os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
+        except Exception as e:
+            raise EnvironmentError(
+                "Unable to determine CHIP root directory. Please ensure the environment is activated."
+            ) from e
+
+
+def get_data_model_path(branch: Branch):
+    """
+    Returns the path to the data model directory for a given branch.
+    """
+    chip_root = get_chip_root()
+    data_model_path = os.path.join(chip_root, 'data_model', branch.value)
+    if not os.path.exists(data_model_path):
+        raise FileNotFoundError(f"Data model path for branch {branch} does not exist: {data_model_path}")
+    return data_model_path
+
+
+def get_spec_xml_output_path():
+    """
+    Returns the path to the output directory for generated XML files.
+    """
+    chip_root = get_chip_root()
+    output_dir = os.path.join(chip_root, 'out', 'spec_xml')
+    if not os.path.exists(output_dir):
+        os.makedirs(output_dir)  # Automatically create the directory if it doesn't exist
+    return output_dir
+
+
+def get_documentation_file_path():
+    """
+    Returns the path to the documentation file.
+    """
+    chip_root = get_chip_root()
+    documentation_file = os.path.join(chip_root, 'docs', 'spec_clusters.md')
+    if not os.path.exists(documentation_file):
+        raise FileNotFoundError(f"Documentation file does not exist: {documentation_file}")
+    return documentation_file
+
+
+def get_python_testing_path():
+    """
+    Returns the path to the python_testing directory.
+    """
+    chip_root = get_chip_root()
+    python_testing_path = os.path.join(chip_root, 'src', 'python_testing')
+    if not os.path.exists(python_testing_path):
+        raise FileNotFoundError(f"Python testing directory does not exist: {python_testing_path}")
+    return python_testing_path
+
+
+def get_in_progress_defines():
+    """
+    Returns a list of defines that are currently in progress.
+    This can be updated dynamically as needed.
+    """
+    return [
+        'aliro', 'atomicwrites', 'battery-storage', 'device-location', 'e2e-jf',
+        'energy-calendar', 'energy-drlc', 'energy-management', 'heat-pump', 'hrap-1',
+        'hvac', 'matter-fabric-synchronization', 'metering', 'secondary-net',
+        'service-area-cluster', 'solar-power', 'tcp', 'water-heater', 'wifiSetup'
+    ]
+
+
+def get_available_branches():
+    """
+    Return a list of available branches for the data model.
+    This can be expanded or dynamically fetched if necessary.
+    """
+    return [Branch.MASTER, Branch.V1_3, Branch.V1_4]
diff --git a/src/python_testing/MinimalRepresentation.py b/src/python_testing/MinimalRepresentation.py
index c99919a..93ce543 100644
--- a/src/python_testing/MinimalRepresentation.py
+++ b/src/python_testing/MinimalRepresentation.py
@@ -17,10 +17,10 @@
 
 from dataclasses import dataclass, field
 
+from chip.testing.conformance import ConformanceDecision
+from chip.testing.global_attribute_ids import GlobalAttributeIds
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from chip.tlv import uint
-from conformance_support import ConformanceDecision
-from global_attribute_ids import GlobalAttributeIds
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
 from TC_DeviceConformance import DeviceConformanceTests
 
 
diff --git a/src/python_testing/TCP_Tests.py b/src/python_testing/TCP_Tests.py
index 849b3a9..1020934 100644
--- a/src/python_testing/TCP_Tests.py
+++ b/src/python_testing/TCP_Tests.py
@@ -33,7 +33,7 @@
 import chip.clusters as Clusters
 from chip import ChipDeviceCtrl
 from chip.interaction_model import InteractionModelError
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_ACE_1_2.py b/src/python_testing/TC_ACE_1_2.py
index 4955cbd..5a38120 100644
--- a/src/python_testing/TC_ACE_1_2.py
+++ b/src/python_testing/TC_ACE_1_2.py
@@ -42,7 +42,7 @@
 from chip.clusters.Attribute import EventReadResult, SubscriptionTransaction, TypedAttributePath
 from chip.exceptions import ChipStackError
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_ACE_1_3.py b/src/python_testing/TC_ACE_1_3.py
index 9e21088..2868d95 100644
--- a/src/python_testing/TC_ACE_1_3.py
+++ b/src/python_testing/TC_ACE_1_3.py
@@ -38,7 +38,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_ACE_1_4.py b/src/python_testing/TC_ACE_1_4.py
index 0afdf03..37577b6 100644
--- a/src/python_testing/TC_ACE_1_4.py
+++ b/src/python_testing/TC_ACE_1_4.py
@@ -42,7 +42,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # This test requires several additional command line arguments
diff --git a/src/python_testing/TC_ACE_1_5.py b/src/python_testing/TC_ACE_1_5.py
index 9766e9a..15c7380 100644
--- a/src/python_testing/TC_ACE_1_5.py
+++ b/src/python_testing/TC_ACE_1_5.py
@@ -40,7 +40,7 @@
 import chip.clusters as Clusters
 from chip import ChipDeviceCtrl
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_ACL_2_11.py b/src/python_testing/TC_ACL_2_11.py
index 9f4aea3..e8aa253 100644
--- a/src/python_testing/TC_ACL_2_11.py
+++ b/src/python_testing/TC_ACL_2_11.py
@@ -42,13 +42,13 @@
 import queue
 
 import chip.clusters as Clusters
-from basic_composition_support import arls_populated
 from chip.clusters.Attribute import EventReadResult, SubscriptionTransaction, ValueDecodeFailure
 from chip.clusters.ClusterObjects import ALL_ACCEPTED_COMMANDS, ALL_ATTRIBUTES, ALL_CLUSTERS, ClusterEvent
 from chip.clusters.Objects import AccessControl
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.basic_composition import arls_populated
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_ACL_2_2.py b/src/python_testing/TC_ACL_2_2.py
index 219be92..6f5ed47 100644
--- a/src/python_testing/TC_ACL_2_2.py
+++ b/src/python_testing/TC_ACL_2_2.py
@@ -32,7 +32,7 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_AccessChecker.py b/src/python_testing/TC_AccessChecker.py
index 23e8535..5f3b3d6 100644
--- a/src/python_testing/TC_AccessChecker.py
+++ b/src/python_testing/TC_AccessChecker.py
@@ -23,13 +23,13 @@
 from typing import Optional
 
 import chip.clusters as Clusters
-from basic_composition_support import BasicCompositionTests
 from chip.interaction_model import Status
+from chip.testing.basic_composition import BasicCompositionTests
+from chip.testing.global_attribute_ids import GlobalAttributeIds
+from chip.testing.matter_testing import (AttributePathLocation, ClusterPathLocation, MatterBaseTest, TestStep, async_test_body,
+                                         default_matter_test_main)
+from chip.testing.spec_parsing import XmlCluster, build_xml_clusters
 from chip.tlv import uint
-from global_attribute_ids import GlobalAttributeIds
-from matter_testing_support import (AttributePathLocation, ClusterPathLocation, MatterBaseTest, TestStep, async_test_body,
-                                    default_matter_test_main)
-from spec_parsing_support import XmlCluster, build_xml_clusters
 
 
 class AccessTestType(Enum):
diff --git a/src/python_testing/TC_BOOLCFG_2_1.py b/src/python_testing/TC_BOOLCFG_2_1.py
index 27e016d..2e90245 100644
--- a/src/python_testing/TC_BOOLCFG_2_1.py
+++ b/src/python_testing/TC_BOOLCFG_2_1.py
@@ -36,7 +36,7 @@
 from operator import ior
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_BOOLCFG_3_1.py b/src/python_testing/TC_BOOLCFG_3_1.py
index 4b3156b..8ed77f6 100644
--- a/src/python_testing/TC_BOOLCFG_3_1.py
+++ b/src/python_testing/TC_BOOLCFG_3_1.py
@@ -36,7 +36,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_BOOLCFG_4_1.py b/src/python_testing/TC_BOOLCFG_4_1.py
index 3cd7f3a..dfe6aac 100644
--- a/src/python_testing/TC_BOOLCFG_4_1.py
+++ b/src/python_testing/TC_BOOLCFG_4_1.py
@@ -34,7 +34,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_BOOLCFG_4_2.py b/src/python_testing/TC_BOOLCFG_4_2.py
index 7897847..093e389 100644
--- a/src/python_testing/TC_BOOLCFG_4_2.py
+++ b/src/python_testing/TC_BOOLCFG_4_2.py
@@ -40,7 +40,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 sensorTrigger = 0x0080_0000_0000_0000
diff --git a/src/python_testing/TC_BOOLCFG_4_3.py b/src/python_testing/TC_BOOLCFG_4_3.py
index aeb245a..845d8e9 100644
--- a/src/python_testing/TC_BOOLCFG_4_3.py
+++ b/src/python_testing/TC_BOOLCFG_4_3.py
@@ -40,7 +40,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 sensorTrigger = 0x0080_0000_0000_0000
diff --git a/src/python_testing/TC_BOOLCFG_4_4.py b/src/python_testing/TC_BOOLCFG_4_4.py
index 66a1d06..c585b14 100644
--- a/src/python_testing/TC_BOOLCFG_4_4.py
+++ b/src/python_testing/TC_BOOLCFG_4_4.py
@@ -40,7 +40,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 sensorTrigger = 0x0080_0000_0000_0000
diff --git a/src/python_testing/TC_BOOLCFG_5_1.py b/src/python_testing/TC_BOOLCFG_5_1.py
index cef0eae..ec31d83 100644
--- a/src/python_testing/TC_BOOLCFG_5_1.py
+++ b/src/python_testing/TC_BOOLCFG_5_1.py
@@ -40,7 +40,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 sensorTrigger = 0x0080_0000_0000_0000
diff --git a/src/python_testing/TC_BOOLCFG_5_2.py b/src/python_testing/TC_BOOLCFG_5_2.py
index 6ab8c82..fd6b883 100644
--- a/src/python_testing/TC_BOOLCFG_5_2.py
+++ b/src/python_testing/TC_BOOLCFG_5_2.py
@@ -40,7 +40,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 sensorTrigger = 0x0080_0000_0000_0000
diff --git a/src/python_testing/TC_BRBINFO_4_1.py b/src/python_testing/TC_BRBINFO_4_1.py
index 07b6fc2..f5eeec3 100644
--- a/src/python_testing/TC_BRBINFO_4_1.py
+++ b/src/python_testing/TC_BRBINFO_4_1.py
@@ -53,7 +53,7 @@
 from chip import ChipDeviceCtrl
 from chip.interaction_model import InteractionModelError, Status
 from chip.testing.apps import IcdAppServerSubprocess
-from matter_testing_support import MatterBaseTest, SimpleEventCallback, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, SimpleEventCallback, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_CADMIN_1_9.py b/src/python_testing/TC_CADMIN_1_9.py
index 060a540..b3b09af 100644
--- a/src/python_testing/TC_CADMIN_1_9.py
+++ b/src/python_testing/TC_CADMIN_1_9.py
@@ -40,7 +40,7 @@
 from chip.ChipDeviceCtrl import CommissioningParameters
 from chip.exceptions import ChipStackError
 from chip.native import PyChipError
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_CCTRL_2_1.py b/src/python_testing/TC_CCTRL_2_1.py
index c689dd6..b656973 100644
--- a/src/python_testing/TC_CCTRL_2_1.py
+++ b/src/python_testing/TC_CCTRL_2_1.py
@@ -38,7 +38,7 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, default_matter_test_main, has_cluster, run_if_endpoint_matches
+from chip.testing.matter_testing import MatterBaseTest, TestStep, default_matter_test_main, has_cluster, run_if_endpoint_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_CCTRL_2_2.py b/src/python_testing/TC_CCTRL_2_2.py
index 9ccb50b..7e7937d 100644
--- a/src/python_testing/TC_CCTRL_2_2.py
+++ b/src/python_testing/TC_CCTRL_2_2.py
@@ -50,8 +50,8 @@
 from chip import ChipDeviceCtrl
 from chip.interaction_model import InteractionModelError, Status
 from chip.testing.apps import AppServerSubprocess
-from matter_testing_support import (MatterBaseTest, TestStep, async_test_body, default_matter_test_main, has_cluster,
-                                    run_if_endpoint_matches)
+from chip.testing.matter_testing import (MatterBaseTest, TestStep, async_test_body, default_matter_test_main, has_cluster,
+                                         run_if_endpoint_matches)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_CCTRL_2_3.py b/src/python_testing/TC_CCTRL_2_3.py
index 07d5706..fe7ed3d 100644
--- a/src/python_testing/TC_CCTRL_2_3.py
+++ b/src/python_testing/TC_CCTRL_2_3.py
@@ -50,8 +50,8 @@
 from chip import ChipDeviceCtrl
 from chip.interaction_model import InteractionModelError, Status
 from chip.testing.apps import AppServerSubprocess
-from matter_testing_support import (MatterBaseTest, TestStep, async_test_body, default_matter_test_main, has_cluster,
-                                    run_if_endpoint_matches)
+from chip.testing.matter_testing import (MatterBaseTest, TestStep, async_test_body, default_matter_test_main, has_cluster,
+                                         run_if_endpoint_matches)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_CC_10_1.py b/src/python_testing/TC_CC_10_1.py
index 2cbbf0f..c2c76ec 100644
--- a/src/python_testing/TC_CC_10_1.py
+++ b/src/python_testing/TC_CC_10_1.py
@@ -41,7 +41,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 kCCAttributeValueIDs = [0x0001, 0x0003, 0x0004, 0x0007, 0x4000, 0x4001, 0x4002, 0x4003, 0x4004]
diff --git a/src/python_testing/TC_CC_2_2.py b/src/python_testing/TC_CC_2_2.py
index 647bee1..f974364 100644
--- a/src/python_testing/TC_CC_2_2.py
+++ b/src/python_testing/TC_CC_2_2.py
@@ -41,8 +41,8 @@
 
 import chip.clusters as Clusters
 from chip.clusters import ClusterObjects as ClusterObjects
-from matter_testing_support import (ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep, default_matter_test_main,
-                                    has_cluster, run_if_endpoint_matches)
+from chip.testing.matter_testing import (ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep, default_matter_test_main,
+                                         has_cluster, run_if_endpoint_matches)
 from mobly import asserts
 from test_plan_support import commission_if_required, read_attribute, verify_success
 
@@ -88,7 +88,8 @@
                     14, f'{THcommand} MoveHue with _MoveMode_ field set to Down, _Rate_ field set to 255 and remaining fields set to 0', verify_success()),
                 TestStep(
                     15, f'{THcommand} MoveSaturation with _MoveMode_ field set to Down, _Rate_ field set to 255 and remaining fields set to 0', verify_success()),
-                TestStep(16, f'{THcommand} MoveToHue with _Hue_ field set to 254, _TransitionTime_ field set to 100, _Direction_ field set to Shortest and remaining fields set to 0', verify_success()),
+                TestStep(16, f'{
+                         THcommand} MoveToHue with _Hue_ field set to 254, _TransitionTime_ field set to 100, _Direction_ field set to Shortest and remaining fields set to 0', verify_success()),
                 TestStep(17, store_values('reportedCurrentHueValuesList', 'CurrentHue')),
                 TestStep(18, verify_entry_count('reportedCurrentHueValuesList', 'CurrentHue'),
                          entry_count_verification('reportedCurrentHueValuesList')),
diff --git a/src/python_testing/TC_CGEN_2_4.py b/src/python_testing/TC_CGEN_2_4.py
index 1cf2f7e..7db0ddc 100644
--- a/src/python_testing/TC_CGEN_2_4.py
+++ b/src/python_testing/TC_CGEN_2_4.py
@@ -46,7 +46,7 @@
 from chip.ChipDeviceCtrl import CommissioningParameters
 from chip.exceptions import ChipStackError
 from chip.native import PyChipError
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # Commissioning stage numbers - we should find a better way to match these to the C++ code
diff --git a/src/python_testing/TC_CNET_1_4.py b/src/python_testing/TC_CNET_1_4.py
index 7e19f8d..2c69456 100644
--- a/src/python_testing/TC_CNET_1_4.py
+++ b/src/python_testing/TC_CNET_1_4.py
@@ -38,7 +38,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 kRootEndpointId = 0
diff --git a/src/python_testing/TC_CNET_4_4.py b/src/python_testing/TC_CNET_4_4.py
index 12407e6..223cfdf 100644
--- a/src/python_testing/TC_CNET_4_4.py
+++ b/src/python_testing/TC_CNET_4_4.py
@@ -22,7 +22,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_DA_1_2.py b/src/python_testing/TC_DA_1_2.py
index 9fa60cd..9bf08fe 100644
--- a/src/python_testing/TC_DA_1_2.py
+++ b/src/python_testing/TC_DA_1_2.py
@@ -40,8 +40,10 @@
 import re
 
 import chip.clusters as Clusters
-from basic_composition_support import BasicCompositionTests
 from chip.interaction_model import InteractionModelError, Status
+from chip.testing.basic_composition import BasicCompositionTests
+from chip.testing.matter_testing import (MatterBaseTest, TestStep, async_test_body, default_matter_test_main, hex_from_bytes,
+                                         type_matches)
 from chip.tlv import TLVReader
 from cryptography import x509
 from cryptography.exceptions import InvalidSignature
@@ -49,7 +51,6 @@
 from cryptography.hazmat.primitives import hashes
 from cryptography.hazmat.primitives.asymmetric import ec, utils
 from ecdsa.curves import curve_by_name
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, hex_from_bytes, type_matches
 from mobly import asserts
 from pyasn1.codec.der.decoder import decode as der_decoder
 from pyasn1.error import PyAsn1Error
diff --git a/src/python_testing/TC_DA_1_5.py b/src/python_testing/TC_DA_1_5.py
index c08f4eb..e8e6ce7 100644
--- a/src/python_testing/TC_DA_1_5.py
+++ b/src/python_testing/TC_DA_1_5.py
@@ -40,12 +40,12 @@
 import chip.clusters as Clusters
 from chip import ChipDeviceCtrl
 from chip.interaction_model import InteractionModelError, Status
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, hex_from_bytes, type_matches
 from chip.tlv import TLVReader
 from cryptography import x509
 from cryptography.hazmat.primitives import hashes
 from cryptography.hazmat.primitives.asymmetric import ec, utils
 from ecdsa.curves import curve_by_name
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, hex_from_bytes, type_matches
 from mobly import asserts
 from pyasn1.codec.der.decoder import decode as der_decoder
 from pyasn1.error import PyAsn1Error
diff --git a/src/python_testing/TC_DA_1_7.py b/src/python_testing/TC_DA_1_7.py
index 1130a7b..6678080 100644
--- a/src/python_testing/TC_DA_1_7.py
+++ b/src/python_testing/TC_DA_1_7.py
@@ -41,13 +41,13 @@
 from typing import List, Optional
 
 import chip.clusters as Clusters
+from chip.testing.matter_testing import (MatterBaseTest, TestStep, async_test_body, bytes_from_hex, default_matter_test_main,
+                                         hex_from_bytes)
 from cryptography.exceptions import InvalidSignature
 from cryptography.hazmat.primitives import hashes
 from cryptography.hazmat.primitives.asymmetric import ec
 from cryptography.hazmat.primitives.serialization import Encoding, PublicFormat
 from cryptography.x509 import AuthorityKeyIdentifier, Certificate, SubjectKeyIdentifier, load_der_x509_certificate
-from matter_testing_support import (MatterBaseTest, TestStep, async_test_body, bytes_from_hex, default_matter_test_main,
-                                    hex_from_bytes)
 from mobly import asserts
 
 # Those are SDK samples that are known to be non-production.
diff --git a/src/python_testing/TC_DEMTestBase.py b/src/python_testing/TC_DEMTestBase.py
index da51ba2..49c8c6a 100644
--- a/src/python_testing/TC_DEMTestBase.py
+++ b/src/python_testing/TC_DEMTestBase.py
@@ -19,7 +19,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import utc_time_in_matter_epoch
+from chip.testing.matter_testing import utc_time_in_matter_epoch
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_DEM_2_1.py b/src/python_testing/TC_DEM_2_1.py
index 4975d3a..851099c 100644
--- a/src/python_testing/TC_DEM_2_1.py
+++ b/src/python_testing/TC_DEM_2_1.py
@@ -49,7 +49,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DEM_2_10.py b/src/python_testing/TC_DEM_2_10.py
index 8f2e0ba..810efdb 100644
--- a/src/python_testing/TC_DEM_2_10.py
+++ b/src/python_testing/TC_DEM_2_10.py
@@ -50,8 +50,8 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import (ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep, async_test_body,
-                                    default_matter_test_main)
+from chip.testing.matter_testing import (ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep, async_test_body,
+                                         default_matter_test_main)
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DEM_2_2.py b/src/python_testing/TC_DEM_2_2.py
index b5e26e4..168417d 100644
--- a/src/python_testing/TC_DEM_2_2.py
+++ b/src/python_testing/TC_DEM_2_2.py
@@ -52,7 +52,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DEM_2_3.py b/src/python_testing/TC_DEM_2_3.py
index 25398b4..c5699c0 100644
--- a/src/python_testing/TC_DEM_2_3.py
+++ b/src/python_testing/TC_DEM_2_3.py
@@ -46,7 +46,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DEM_2_4.py b/src/python_testing/TC_DEM_2_4.py
index 6a396fc..1b591cd 100644
--- a/src/python_testing/TC_DEM_2_4.py
+++ b/src/python_testing/TC_DEM_2_4.py
@@ -47,7 +47,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import Status
-from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DEM_2_5.py b/src/python_testing/TC_DEM_2_5.py
index f7f7d75..c845ec1 100644
--- a/src/python_testing/TC_DEM_2_5.py
+++ b/src/python_testing/TC_DEM_2_5.py
@@ -49,7 +49,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DEM_2_6.py b/src/python_testing/TC_DEM_2_6.py
index 2e2a96f..32dea4a 100644
--- a/src/python_testing/TC_DEM_2_6.py
+++ b/src/python_testing/TC_DEM_2_6.py
@@ -49,7 +49,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DEM_2_7.py b/src/python_testing/TC_DEM_2_7.py
index 36e7ab9..44c65fb 100644
--- a/src/python_testing/TC_DEM_2_7.py
+++ b/src/python_testing/TC_DEM_2_7.py
@@ -49,7 +49,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DEM_2_8.py b/src/python_testing/TC_DEM_2_8.py
index 1f3d240..016778f 100644
--- a/src/python_testing/TC_DEM_2_8.py
+++ b/src/python_testing/TC_DEM_2_8.py
@@ -49,7 +49,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DEM_2_9.py b/src/python_testing/TC_DEM_2_9.py
index 4541b9c..05111e3 100644
--- a/src/python_testing/TC_DEM_2_9.py
+++ b/src/python_testing/TC_DEM_2_9.py
@@ -48,7 +48,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_DEMTestBase import DEMTestBase
 
diff --git a/src/python_testing/TC_DGGEN_2_4.py b/src/python_testing/TC_DGGEN_2_4.py
index 27542e6..17b0684 100644
--- a/src/python_testing/TC_DGGEN_2_4.py
+++ b/src/python_testing/TC_DGGEN_2_4.py
@@ -40,8 +40,9 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError
-from matter_testing_support import (MatterBaseTest, async_test_body, default_matter_test_main, matter_epoch_us_from_utc_datetime,
-                                    utc_datetime_from_matter_epoch_us, utc_datetime_from_posix_time_ms)
+from chip.testing.matter_testing import (MatterBaseTest, async_test_body, default_matter_test_main,
+                                         matter_epoch_us_from_utc_datetime, utc_datetime_from_matter_epoch_us,
+                                         utc_datetime_from_posix_time_ms)
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_DGGEN_3_2.py b/src/python_testing/TC_DGGEN_3_2.py
index 7e5af6c..58c333e 100644
--- a/src/python_testing/TC_DGGEN_3_2.py
+++ b/src/python_testing/TC_DGGEN_3_2.py
@@ -16,7 +16,7 @@
 #
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_DGSW_2_1.py b/src/python_testing/TC_DGSW_2_1.py
index 46ed696..6338932 100644
--- a/src/python_testing/TC_DGSW_2_1.py
+++ b/src/python_testing/TC_DGSW_2_1.py
@@ -36,7 +36,7 @@
 #
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_DRLK_2_12.py b/src/python_testing/TC_DRLK_2_12.py
index cf63bd8..342fbc6 100644
--- a/src/python_testing/TC_DRLK_2_12.py
+++ b/src/python_testing/TC_DRLK_2_12.py
@@ -35,8 +35,8 @@
 #     quiet: true
 # === END CI TEST ARGUMENTS ===
 
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from drlk_2_x_common import DRLK_COMMON
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
 
 # Configurable parameters:
 # - userIndex: userIndex to use when creating a user on the DUT for testing purposes
diff --git a/src/python_testing/TC_DRLK_2_13.py b/src/python_testing/TC_DRLK_2_13.py
index dc1b69d..809e278 100644
--- a/src/python_testing/TC_DRLK_2_13.py
+++ b/src/python_testing/TC_DRLK_2_13.py
@@ -43,7 +43,7 @@
 from chip.clusters.Attribute import EventPriority
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_DRLK_2_2.py b/src/python_testing/TC_DRLK_2_2.py
index 84a511b..f9f192f 100644
--- a/src/python_testing/TC_DRLK_2_2.py
+++ b/src/python_testing/TC_DRLK_2_2.py
@@ -35,8 +35,8 @@
 #     quiet: true
 # === END CI TEST ARGUMENTS ===
 
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from drlk_2_x_common import DRLK_COMMON
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
 
 # Configurable parameters:
 # - userIndex: userIndex to use when creating a user on the DUT for testing purposes
diff --git a/src/python_testing/TC_DRLK_2_3.py b/src/python_testing/TC_DRLK_2_3.py
index 7569086..114f41a 100644
--- a/src/python_testing/TC_DRLK_2_3.py
+++ b/src/python_testing/TC_DRLK_2_3.py
@@ -35,8 +35,8 @@
 #     quiet: true
 # === END CI TEST ARGUMENTS ===
 
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from drlk_2_x_common import DRLK_COMMON
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
 
 # Configurable parameters:
 # - userIndex: userIndex to use when creating a user on the DUT for testing purposes
diff --git a/src/python_testing/TC_DRLK_2_5.py b/src/python_testing/TC_DRLK_2_5.py
index defe78e..84451d2 100644
--- a/src/python_testing/TC_DRLK_2_5.py
+++ b/src/python_testing/TC_DRLK_2_5.py
@@ -38,7 +38,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_DRLK_2_9.py b/src/python_testing/TC_DRLK_2_9.py
index b92eaf4..fb294b7 100644
--- a/src/python_testing/TC_DRLK_2_9.py
+++ b/src/python_testing/TC_DRLK_2_9.py
@@ -41,8 +41,8 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from drlk_2_x_common import DRLK_COMMON
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_DeviceBasicComposition.py b/src/python_testing/TC_DeviceBasicComposition.py
index 9ff05d4..e0e9d86 100644
--- a/src/python_testing/TC_DeviceBasicComposition.py
+++ b/src/python_testing/TC_DeviceBasicComposition.py
@@ -103,19 +103,19 @@
 import chip.clusters as Clusters
 import chip.clusters.ClusterObjects
 import chip.tlv
-from basic_composition_support import BasicCompositionTests
 from chip import ChipUtility
 from chip.clusters.Attribute import ValueDecodeFailure
 from chip.clusters.ClusterObjects import ClusterAttributeDescriptor, ClusterObjectFieldDescriptor
 from chip.interaction_model import InteractionModelError, Status
+from chip.testing.basic_composition import BasicCompositionTests
+from chip.testing.global_attribute_ids import GlobalAttributeIds
+from chip.testing.matter_testing import (AttributePathLocation, ClusterPathLocation, CommandPathLocation, MatterBaseTest, TestStep,
+                                         async_test_body, default_matter_test_main)
+from chip.testing.taglist_and_topology_test import (create_device_type_list_for_root, create_device_type_lists,
+                                                    find_tag_list_problems, find_tree_roots, flat_list_ok,
+                                                    get_direct_children_of_root, parts_list_cycles, separate_endpoint_types)
 from chip.tlv import uint
-from global_attribute_ids import GlobalAttributeIds
-from matter_testing_support import (AttributePathLocation, ClusterPathLocation, CommandPathLocation, MatterBaseTest, TestStep,
-                                    async_test_body, default_matter_test_main)
 from mobly import asserts
-from taglist_and_topology_test_support import (create_device_type_list_for_root, create_device_type_lists, find_tag_list_problems,
-                                               find_tree_roots, flat_list_ok, get_direct_children_of_root, parts_list_cycles,
-                                               separate_endpoint_types)
 
 
 def check_int_in_range(min_value: int, max_value: int, allow_null: bool = False) -> Callable:
@@ -511,12 +511,14 @@
                                                      attribute_id=manufacturer_value)
                     if suffix > attribute_standard_range_max and suffix < global_range_min:
                         self.record_error(self.get_test_name(), location=location,
-                                          problem=f"Manufacturer attribute in undefined range {manufacturer_value} in cluster {cluster_id}",
+                                          problem=f"Manufacturer attribute in undefined range {
+                                              manufacturer_value} in cluster {cluster_id}",
                                           spec_location=f"Cluster {cluster_id}")
                         success = False
                     elif suffix >= global_range_min:
                         self.record_error(self.get_test_name(), location=location,
-                                          problem=f"Manufacturer attribute in global range {manufacturer_value} in cluster {cluster_id}",
+                                          problem=f"Manufacturer attribute in global range {
+                                              manufacturer_value} in cluster {cluster_id}",
                                           spec_location=f"Cluster {cluster_id}")
                         success = False
 
@@ -813,7 +815,8 @@
         for ep, problem in problems.items():
             location = AttributePathLocation(endpoint_id=ep, cluster_id=Clusters.Descriptor.id,
                                              attribute_id=Clusters.Descriptor.Attributes.TagList.attribute_id)
-            msg = f'problem on ep {ep}: missing feature = {problem.missing_feature}, missing attribute = {problem.missing_attribute}, duplicates = {problem.duplicates}, same_tags = {problem.same_tag}'
+            msg = f'problem on ep {ep}: missing feature = {problem.missing_feature}, missing attribute = {
+                problem.missing_attribute}, duplicates = {problem.duplicates}, same_tags = {problem.same_tag}'
             self.record_error(self.get_test_name(), location=location, problem=msg, spec_location="Descriptor TagList")
 
         self.print_step(2, "Identify all the direct children of the root node endpoint")
diff --git a/src/python_testing/TC_DeviceConformance.py b/src/python_testing/TC_DeviceConformance.py
index 8e700b4..a3e350b 100644
--- a/src/python_testing/TC_DeviceConformance.py
+++ b/src/python_testing/TC_DeviceConformance.py
@@ -39,16 +39,16 @@
 from typing import Callable
 
 import chip.clusters as Clusters
-from basic_composition_support import BasicCompositionTests
+from chip.testing.basic_composition import BasicCompositionTests
+from chip.testing.choice_conformance import (evaluate_attribute_choice_conformance, evaluate_command_choice_conformance,
+                                             evaluate_feature_choice_conformance)
+from chip.testing.conformance import ConformanceDecision, conformance_allowed
+from chip.testing.global_attribute_ids import (ClusterIdType, DeviceTypeIdType, GlobalAttributeIds, cluster_id_type,
+                                               device_type_id_type, is_valid_device_type_id)
+from chip.testing.matter_testing import (AttributePathLocation, ClusterPathLocation, CommandPathLocation, DeviceTypePathLocation,
+                                         MatterBaseTest, ProblemNotice, ProblemSeverity, async_test_body, default_matter_test_main)
+from chip.testing.spec_parsing import CommandType, build_xml_clusters, build_xml_device_types
 from chip.tlv import uint
-from choice_conformance_support import (evaluate_attribute_choice_conformance, evaluate_command_choice_conformance,
-                                        evaluate_feature_choice_conformance)
-from conformance_support import ConformanceDecision, conformance_allowed
-from global_attribute_ids import (ClusterIdType, DeviceTypeIdType, GlobalAttributeIds, cluster_id_type, device_type_id_type,
-                                  is_valid_device_type_id)
-from matter_testing_support import (AttributePathLocation, ClusterPathLocation, CommandPathLocation, DeviceTypePathLocation,
-                                    MatterBaseTest, ProblemNotice, ProblemSeverity, async_test_body, default_matter_test_main)
-from spec_parsing_support import CommandType, build_xml_clusters, build_xml_device_types
 
 
 class DeviceConformanceTests(BasicCompositionTests):
diff --git a/src/python_testing/TC_ECOINFO_2_1.py b/src/python_testing/TC_ECOINFO_2_1.py
index 1cb6ec2..a0adf75 100644
--- a/src/python_testing/TC_ECOINFO_2_1.py
+++ b/src/python_testing/TC_ECOINFO_2_1.py
@@ -47,8 +47,8 @@
 from chip.clusters.Types import NullValue
 from chip.interaction_model import Status
 from chip.testing.apps import AppServerSubprocess
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from chip.tlv import uint
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_ECOINFO_2_2.py b/src/python_testing/TC_ECOINFO_2_2.py
index 85868a9..403544b 100644
--- a/src/python_testing/TC_ECOINFO_2_2.py
+++ b/src/python_testing/TC_ECOINFO_2_2.py
@@ -46,7 +46,7 @@
 import chip.clusters as Clusters
 from chip.interaction_model import Status
 from chip.testing.apps import AppServerSubprocess
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 _DEVICE_TYPE_AGGREGGATOR = 0x000E
diff --git a/src/python_testing/TC_EEM_2_1.py b/src/python_testing/TC_EEM_2_1.py
index 0b6b480..653bd94 100644
--- a/src/python_testing/TC_EEM_2_1.py
+++ b/src/python_testing/TC_EEM_2_1.py
@@ -43,7 +43,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EnergyReporting_Utils import EnergyReportingBaseTestHelper
 
diff --git a/src/python_testing/TC_EEM_2_2.py b/src/python_testing/TC_EEM_2_2.py
index 6058aa3..408cd85 100644
--- a/src/python_testing/TC_EEM_2_2.py
+++ b/src/python_testing/TC_EEM_2_2.py
@@ -41,7 +41,7 @@
 
 import time
 
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EnergyReporting_Utils import EnergyReportingBaseTestHelper
 
diff --git a/src/python_testing/TC_EEM_2_3.py b/src/python_testing/TC_EEM_2_3.py
index 6e8bd7d..69a41b0 100644
--- a/src/python_testing/TC_EEM_2_3.py
+++ b/src/python_testing/TC_EEM_2_3.py
@@ -41,7 +41,7 @@
 
 import time
 
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EnergyReporting_Utils import EnergyReportingBaseTestHelper
 
diff --git a/src/python_testing/TC_EEM_2_4.py b/src/python_testing/TC_EEM_2_4.py
index fb5d5f6..0f67fb0 100644
--- a/src/python_testing/TC_EEM_2_4.py
+++ b/src/python_testing/TC_EEM_2_4.py
@@ -41,7 +41,7 @@
 
 import time
 
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EnergyReporting_Utils import EnergyReportingBaseTestHelper
 
diff --git a/src/python_testing/TC_EEM_2_5.py b/src/python_testing/TC_EEM_2_5.py
index 1408e2b..43cb2cd 100644
--- a/src/python_testing/TC_EEM_2_5.py
+++ b/src/python_testing/TC_EEM_2_5.py
@@ -41,7 +41,7 @@
 
 import time
 
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EnergyReporting_Utils import EnergyReportingBaseTestHelper
 
diff --git a/src/python_testing/TC_EEVSE_2_2.py b/src/python_testing/TC_EEVSE_2_2.py
index 61e52ed..144bfd8 100644
--- a/src/python_testing/TC_EEVSE_2_2.py
+++ b/src/python_testing/TC_EEVSE_2_2.py
@@ -46,7 +46,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EEVSE_Utils import EEVSEBaseTestHelper
 
diff --git a/src/python_testing/TC_EEVSE_2_3.py b/src/python_testing/TC_EEVSE_2_3.py
index 92005f3..6494f4a 100644
--- a/src/python_testing/TC_EEVSE_2_3.py
+++ b/src/python_testing/TC_EEVSE_2_3.py
@@ -46,7 +46,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import Status
-from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EEVSE_Utils import EEVSEBaseTestHelper
 
@@ -191,7 +191,7 @@
 
         logger.info(
             f"minutesPastMidnight = {minutes_past_midnight} => "
-            f"{int(minutes_past_midnight/60)}:{int(minutes_past_midnight%60)}"
+            f"{int(minutes_past_midnight/60)}:{int(minutes_past_midnight % 60)}"
             f" Expected target_time = {target_time}")
 
         target_time_delta = target_time - \
diff --git a/src/python_testing/TC_EEVSE_2_4.py b/src/python_testing/TC_EEVSE_2_4.py
index aaebf64..10355de 100644
--- a/src/python_testing/TC_EEVSE_2_4.py
+++ b/src/python_testing/TC_EEVSE_2_4.py
@@ -45,7 +45,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_EEVSE_Utils import EEVSEBaseTestHelper
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_EEVSE_2_5.py b/src/python_testing/TC_EEVSE_2_5.py
index b25cfe1..4571cfb 100644
--- a/src/python_testing/TC_EEVSE_2_5.py
+++ b/src/python_testing/TC_EEVSE_2_5.py
@@ -45,7 +45,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import Status
-from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_EEVSE_Utils import EEVSEBaseTestHelper
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_EEVSE_2_6.py b/src/python_testing/TC_EEVSE_2_6.py
index 8f809b4..d66ff60 100644
--- a/src/python_testing/TC_EEVSE_2_6.py
+++ b/src/python_testing/TC_EEVSE_2_6.py
@@ -45,8 +45,8 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import (ClusterAttributeChangeAccumulator, EventChangeCallback, MatterBaseTest, TestStep,
-                                    async_test_body, default_matter_test_main)
+from chip.testing.matter_testing import (ClusterAttributeChangeAccumulator, EventChangeCallback, MatterBaseTest, TestStep,
+                                         async_test_body, default_matter_test_main)
 from mobly import asserts
 from TC_EEVSE_Utils import EEVSEBaseTestHelper
 
diff --git a/src/python_testing/TC_EPM_2_1.py b/src/python_testing/TC_EPM_2_1.py
index f12cafe..0f3c74e 100644
--- a/src/python_testing/TC_EPM_2_1.py
+++ b/src/python_testing/TC_EPM_2_1.py
@@ -42,7 +42,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EnergyReporting_Utils import EnergyReportingBaseTestHelper
 
@@ -148,7 +148,8 @@
                                  "minMeasuredValue must be the same as 1st accuracyRange rangeMin")
 
             for index, range_entry in enumerate(measurement.accuracyRanges):
-                logging.info(f"   [{index}] rangeMin:{range_entry.rangeMin} rangeMax:{range_entry.rangeMax} percentMax:{range_entry.percentMax} percentMin:{range_entry.percentMin} percentTypical:{range_entry.percentTypical} fixedMax:{range_entry.fixedMax} fixedMin:{range_entry.fixedMin} fixedTypical:{range_entry.fixedTypical}")
+                logging.info(f"   [{index}] rangeMin: {range_entry.rangeMin} rangeMax: {range_entry.rangeMax} percentMax: {range_entry.percentMax} percentMin: {
+                             range_entry.percentMin} percentTypical: {range_entry.percentTypical} fixedMax: {range_entry.fixedMax} fixedMin: {range_entry.fixedMin} fixedTypical: {range_entry.fixedTypical}")
                 asserts.assert_greater(
                     range_entry.rangeMax, range_entry.rangeMin, "rangeMax should be > rangeMin")
                 if index == 0:
diff --git a/src/python_testing/TC_EPM_2_2.py b/src/python_testing/TC_EPM_2_2.py
index 97e9e04..d817042 100644
--- a/src/python_testing/TC_EPM_2_2.py
+++ b/src/python_testing/TC_EPM_2_2.py
@@ -42,7 +42,7 @@
 import logging
 import time
 
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EnergyReporting_Utils import EnergyReportingBaseTestHelper
 
diff --git a/src/python_testing/TC_EWATERHTR_2_1.py b/src/python_testing/TC_EWATERHTR_2_1.py
index ced3b16..82c9e93 100644
--- a/src/python_testing/TC_EWATERHTR_2_1.py
+++ b/src/python_testing/TC_EWATERHTR_2_1.py
@@ -45,7 +45,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EWATERHTRBase import EWATERHTRBase
 
diff --git a/src/python_testing/TC_EWATERHTR_2_2.py b/src/python_testing/TC_EWATERHTR_2_2.py
index 11e8d54..1bd7185 100644
--- a/src/python_testing/TC_EWATERHTR_2_2.py
+++ b/src/python_testing/TC_EWATERHTR_2_2.py
@@ -47,7 +47,7 @@
 import time
 
 import chip.clusters as Clusters
-from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EWATERHTRBase import EWATERHTRBase
 
diff --git a/src/python_testing/TC_EWATERHTR_2_3.py b/src/python_testing/TC_EWATERHTR_2_3.py
index 5f7df8c..0f1c3de 100644
--- a/src/python_testing/TC_EWATERHTR_2_3.py
+++ b/src/python_testing/TC_EWATERHTR_2_3.py
@@ -45,7 +45,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_EWATERHTRBase import EWATERHTRBase
 
diff --git a/src/python_testing/TC_FAN_3_1.py b/src/python_testing/TC_FAN_3_1.py
index f832250..483be89 100644
--- a/src/python_testing/TC_FAN_3_1.py
+++ b/src/python_testing/TC_FAN_3_1.py
@@ -39,7 +39,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_FAN_3_2.py b/src/python_testing/TC_FAN_3_2.py
index 736c970..799510e 100644
--- a/src/python_testing/TC_FAN_3_2.py
+++ b/src/python_testing/TC_FAN_3_2.py
@@ -39,7 +39,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_FAN_3_3.py b/src/python_testing/TC_FAN_3_3.py
index 935811d..7a4dde3 100644
--- a/src/python_testing/TC_FAN_3_3.py
+++ b/src/python_testing/TC_FAN_3_3.py
@@ -38,7 +38,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_FAN_3_4.py b/src/python_testing/TC_FAN_3_4.py
index 7223393..989680e 100644
--- a/src/python_testing/TC_FAN_3_4.py
+++ b/src/python_testing/TC_FAN_3_4.py
@@ -38,7 +38,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # import time
diff --git a/src/python_testing/TC_FAN_3_5.py b/src/python_testing/TC_FAN_3_5.py
index d03f99e..26dfc3e 100644
--- a/src/python_testing/TC_FAN_3_5.py
+++ b/src/python_testing/TC_FAN_3_5.py
@@ -39,7 +39,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_ICDM_2_1.py b/src/python_testing/TC_ICDM_2_1.py
index 35d1cb6..8d7f6d5 100644
--- a/src/python_testing/TC_ICDM_2_1.py
+++ b/src/python_testing/TC_ICDM_2_1.py
@@ -39,7 +39,7 @@
 import re
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_ICDM_3_1.py b/src/python_testing/TC_ICDM_3_1.py
index d46d725..58181a6 100644
--- a/src/python_testing/TC_ICDM_3_1.py
+++ b/src/python_testing/TC_ICDM_3_1.py
@@ -41,7 +41,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_ICDM_3_2.py b/src/python_testing/TC_ICDM_3_2.py
index 924c6f4..d9800d6 100644
--- a/src/python_testing/TC_ICDM_3_2.py
+++ b/src/python_testing/TC_ICDM_3_2.py
@@ -42,7 +42,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_ICDM_3_3.py b/src/python_testing/TC_ICDM_3_3.py
index bc1d698..d261e53 100644
--- a/src/python_testing/TC_ICDM_3_3.py
+++ b/src/python_testing/TC_ICDM_3_3.py
@@ -41,7 +41,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_ICDM_3_4.py b/src/python_testing/TC_ICDM_3_4.py
index 4ebb325..8ff2a57 100644
--- a/src/python_testing/TC_ICDM_3_4.py
+++ b/src/python_testing/TC_ICDM_3_4.py
@@ -40,8 +40,8 @@
 import time
 
 import chip.clusters as Clusters
-from matter_testing_support import (MatterBaseTest, MatterStackState, MatterTestConfig, TestStep, async_test_body,
-                                    default_matter_test_main)
+from chip.testing.matter_testing import (MatterBaseTest, MatterStackState, MatterTestConfig, TestStep, async_test_body,
+                                         default_matter_test_main)
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_ICDM_5_1.py b/src/python_testing/TC_ICDM_5_1.py
index 4b7222b..dacfe58 100644
--- a/src/python_testing/TC_ICDM_5_1.py
+++ b/src/python_testing/TC_ICDM_5_1.py
@@ -40,7 +40,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mdns_discovery import mdns_discovery
 from mobly import asserts
 
diff --git a/src/python_testing/TC_ICDManagementCluster.py b/src/python_testing/TC_ICDManagementCluster.py
index 07c889a..c0437cb 100644
--- a/src/python_testing/TC_ICDManagementCluster.py
+++ b/src/python_testing/TC_ICDManagementCluster.py
@@ -42,7 +42,7 @@
 from enum import IntEnum
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # Assumes `--enable-key 000102030405060708090a0b0c0d0e0f` on Linux app command line, or a DUT
diff --git a/src/python_testing/TC_IDM_1_2.py b/src/python_testing/TC_IDM_1_2.py
index 7bfb97c..a1db9ba 100644
--- a/src/python_testing/TC_IDM_1_2.py
+++ b/src/python_testing/TC_IDM_1_2.py
@@ -44,7 +44,7 @@
 from chip import ChipUtility
 from chip.exceptions import ChipStackError
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_IDM_1_4.py b/src/python_testing/TC_IDM_1_4.py
index b00de41..7419413 100644
--- a/src/python_testing/TC_IDM_1_4.py
+++ b/src/python_testing/TC_IDM_1_4.py
@@ -44,7 +44,7 @@
 import chip.clusters as Clusters
 from chip.exceptions import ChipStackError
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 # If DUT supports `MaxPathsPerInvoke > 1`, additional command line argument
diff --git a/src/python_testing/TC_IDM_4_2.py b/src/python_testing/TC_IDM_4_2.py
index d9e876b..0f4cd51 100644
--- a/src/python_testing/TC_IDM_4_2.py
+++ b/src/python_testing/TC_IDM_4_2.py
@@ -44,7 +44,7 @@
 from chip.clusters.Attribute import AttributePath, TypedAttributePath
 from chip.exceptions import ChipStackError
 from chip.interaction_model import Status
-from matter_testing_support import AttributeChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import AttributeChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 '''
diff --git a/src/python_testing/TC_LVL_2_3.py b/src/python_testing/TC_LVL_2_3.py
index 94c33d5..d120bb7 100644
--- a/src/python_testing/TC_LVL_2_3.py
+++ b/src/python_testing/TC_LVL_2_3.py
@@ -41,8 +41,8 @@
 
 import chip.clusters as Clusters
 import test_plan_support
-from matter_testing_support import (ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep, default_matter_test_main,
-                                    has_cluster, run_if_endpoint_matches)
+from chip.testing.matter_testing import (ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep, default_matter_test_main,
+                                         has_cluster, run_if_endpoint_matches)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_MCORE_FS_1_1.py b/src/python_testing/TC_MCORE_FS_1_1.py
index bd33e69..3fd126f 100755
--- a/src/python_testing/TC_MCORE_FS_1_1.py
+++ b/src/python_testing/TC_MCORE_FS_1_1.py
@@ -48,7 +48,7 @@
 import chip.clusters as Clusters
 from chip import ChipDeviceCtrl
 from chip.testing.apps import AppServerSubprocess
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_MCORE_FS_1_2.py b/src/python_testing/TC_MCORE_FS_1_2.py
index a7d318c..f806db4 100644
--- a/src/python_testing/TC_MCORE_FS_1_2.py
+++ b/src/python_testing/TC_MCORE_FS_1_2.py
@@ -51,8 +51,8 @@
 import chip.clusters as Clusters
 from chip import ChipDeviceCtrl
 from chip.testing.apps import AppServerSubprocess
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from ecdsa.curves import NIST256p
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 from TC_SC_3_6 import AttributeChangeAccumulator
 
diff --git a/src/python_testing/TC_MCORE_FS_1_3.py b/src/python_testing/TC_MCORE_FS_1_3.py
index 1b17aec..3904227 100644
--- a/src/python_testing/TC_MCORE_FS_1_3.py
+++ b/src/python_testing/TC_MCORE_FS_1_3.py
@@ -51,7 +51,7 @@
 from chip import ChipDeviceCtrl
 from chip.interaction_model import Status
 from chip.testing.apps import AppServerSubprocess
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_MCORE_FS_1_4.py b/src/python_testing/TC_MCORE_FS_1_4.py
index 74a8bec..795e81c 100644
--- a/src/python_testing/TC_MCORE_FS_1_4.py
+++ b/src/python_testing/TC_MCORE_FS_1_4.py
@@ -50,8 +50,8 @@
 from chip import ChipDeviceCtrl
 from chip.interaction_model import Status
 from chip.testing.apps import AppServerSubprocess
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from chip.testing.tasks import Subprocess
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_MCORE_FS_1_5.py b/src/python_testing/TC_MCORE_FS_1_5.py
index 57ae214..59549fd 100755
--- a/src/python_testing/TC_MCORE_FS_1_5.py
+++ b/src/python_testing/TC_MCORE_FS_1_5.py
@@ -51,8 +51,8 @@
 import chip.clusters as Clusters
 from chip import ChipDeviceCtrl
 from chip.testing.apps import AppServerSubprocess
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from ecdsa.curves import NIST256p
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 from TC_SC_3_6 import AttributeChangeAccumulator
 
diff --git a/src/python_testing/TC_MWOCTRL_2_1.py b/src/python_testing/TC_MWOCTRL_2_1.py
index 57c51fa..6f91357 100644
--- a/src/python_testing/TC_MWOCTRL_2_1.py
+++ b/src/python_testing/TC_MWOCTRL_2_1.py
@@ -37,7 +37,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # This test requires several additional command line arguments
diff --git a/src/python_testing/TC_MWOCTRL_2_2.py b/src/python_testing/TC_MWOCTRL_2_2.py
index 35eef08..4559689 100644
--- a/src/python_testing/TC_MWOCTRL_2_2.py
+++ b/src/python_testing/TC_MWOCTRL_2_2.py
@@ -39,7 +39,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # This test requires several additional command line arguments
diff --git a/src/python_testing/TC_MWOCTRL_2_4.py b/src/python_testing/TC_MWOCTRL_2_4.py
index 9e11724..e05c4a5 100644
--- a/src/python_testing/TC_MWOCTRL_2_4.py
+++ b/src/python_testing/TC_MWOCTRL_2_4.py
@@ -39,7 +39,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # This test requires several additional command line arguments
diff --git a/src/python_testing/TC_MWOM_1_2.py b/src/python_testing/TC_MWOM_1_2.py
index 8a77623..5cad6ce 100644
--- a/src/python_testing/TC_MWOM_1_2.py
+++ b/src/python_testing/TC_MWOM_1_2.py
@@ -37,7 +37,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_OCC_2_1.py b/src/python_testing/TC_OCC_2_1.py
index 885ec6b..d831d48 100644
--- a/src/python_testing/TC_OCC_2_1.py
+++ b/src/python_testing/TC_OCC_2_1.py
@@ -43,7 +43,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_OCC_2_2.py b/src/python_testing/TC_OCC_2_2.py
index 463b813..bf5e97e 100644
--- a/src/python_testing/TC_OCC_2_2.py
+++ b/src/python_testing/TC_OCC_2_2.py
@@ -37,7 +37,7 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
@@ -133,7 +133,8 @@
             asserts.assert_equal(
                 (occupancy_sensor_type_bitmap_dut & sensor_bit) != 0,
                 (feature_map & feature_bit) != 0,
-                f"Feature bit and sensor bitmap must be equal for {name} (BITMAP: 0x{occupancy_sensor_type_bitmap_dut:02X}, FEATUREMAP: 0x{feature_map:02X})"
+                f"Feature bit and sensor bitmap must be equal for {
+                    name}(BITMAP: 0x{occupancy_sensor_type_bitmap_dut: 02X}, FEATUREMAP: 0x{feature_map: 02X})"
             )
 
 
diff --git a/src/python_testing/TC_OCC_2_3.py b/src/python_testing/TC_OCC_2_3.py
index 9c6cb80..8d4b53f 100644
--- a/src/python_testing/TC_OCC_2_3.py
+++ b/src/python_testing/TC_OCC_2_3.py
@@ -39,7 +39,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_OCC_3_1.py b/src/python_testing/TC_OCC_3_1.py
index b6ba0ea..cce0a2f 100644
--- a/src/python_testing/TC_OCC_3_1.py
+++ b/src/python_testing/TC_OCC_3_1.py
@@ -43,8 +43,8 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import (ClusterAttributeChangeAccumulator, EventChangeCallback, MatterBaseTest, TestStep,
-                                    async_test_body, await_sequence_of_reports, default_matter_test_main)
+from chip.testing.matter_testing import (ClusterAttributeChangeAccumulator, EventChangeCallback, MatterBaseTest, TestStep,
+                                         async_test_body, await_sequence_of_reports, default_matter_test_main)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_OCC_3_2.py b/src/python_testing/TC_OCC_3_2.py
index d4e5f18..3a5ca17 100644
--- a/src/python_testing/TC_OCC_3_2.py
+++ b/src/python_testing/TC_OCC_3_2.py
@@ -44,8 +44,8 @@
 import time
 
 import chip.clusters as Clusters
-from matter_testing_support import (AttributeValue, ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep, async_test_body,
-                                    await_sequence_of_reports, default_matter_test_main)
+from chip.testing.matter_testing import (AttributeValue, ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep,
+                                         async_test_body, await_sequence_of_reports, default_matter_test_main)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_OPCREDS_3_1.py b/src/python_testing/TC_OPCREDS_3_1.py
index be21c6d..1506d2a 100644
--- a/src/python_testing/TC_OPCREDS_3_1.py
+++ b/src/python_testing/TC_OPCREDS_3_1.py
@@ -42,8 +42,8 @@
 from chip import ChipDeviceCtrl
 from chip.exceptions import ChipStackError
 from chip.interaction_model import InteractionModelError, Status
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from chip.tlv import TLVReader, TLVWriter
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_OPCREDS_3_2.py b/src/python_testing/TC_OPCREDS_3_2.py
index 91e2958..2bfc214 100644
--- a/src/python_testing/TC_OPCREDS_3_2.py
+++ b/src/python_testing/TC_OPCREDS_3_2.py
@@ -36,9 +36,9 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from chip.tlv import TLVReader
 from chip.utils import CommissioningBuildingBlocks
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 from test_plan_support import (commission_from_existing, commission_if_required, read_attribute, remove_fabric,
                                verify_commissioning_successful, verify_success)
diff --git a/src/python_testing/TC_OPSTATE_2_1.py b/src/python_testing/TC_OPSTATE_2_1.py
index 1b6966a..060b71d 100644
--- a/src/python_testing/TC_OPSTATE_2_1.py
+++ b/src/python_testing/TC_OPSTATE_2_1.py
@@ -37,7 +37,7 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OPSTATE_2_2.py b/src/python_testing/TC_OPSTATE_2_2.py
index 8617d3d..f0ed8f2 100644
--- a/src/python_testing/TC_OPSTATE_2_2.py
+++ b/src/python_testing/TC_OPSTATE_2_2.py
@@ -38,7 +38,7 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OPSTATE_2_3.py b/src/python_testing/TC_OPSTATE_2_3.py
index 3671747..d35aa6e 100644
--- a/src/python_testing/TC_OPSTATE_2_3.py
+++ b/src/python_testing/TC_OPSTATE_2_3.py
@@ -39,7 +39,7 @@
 
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OPSTATE_2_4.py b/src/python_testing/TC_OPSTATE_2_4.py
index d468227..ec2c7c1 100644
--- a/src/python_testing/TC_OPSTATE_2_4.py
+++ b/src/python_testing/TC_OPSTATE_2_4.py
@@ -39,7 +39,7 @@
 
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OPSTATE_2_5.py b/src/python_testing/TC_OPSTATE_2_5.py
index 687f4d2..89a2462 100644
--- a/src/python_testing/TC_OPSTATE_2_5.py
+++ b/src/python_testing/TC_OPSTATE_2_5.py
@@ -39,7 +39,7 @@
 
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OPSTATE_2_6.py b/src/python_testing/TC_OPSTATE_2_6.py
index 9441569..0b9e1ec 100644
--- a/src/python_testing/TC_OPSTATE_2_6.py
+++ b/src/python_testing/TC_OPSTATE_2_6.py
@@ -39,7 +39,7 @@
 
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OVENOPSTATE_2_1.py b/src/python_testing/TC_OVENOPSTATE_2_1.py
index 6bf7226..d830a41 100644
--- a/src/python_testing/TC_OVENOPSTATE_2_1.py
+++ b/src/python_testing/TC_OVENOPSTATE_2_1.py
@@ -38,7 +38,7 @@
 
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OVENOPSTATE_2_2.py b/src/python_testing/TC_OVENOPSTATE_2_2.py
index 2fa1215..55afad1 100644
--- a/src/python_testing/TC_OVENOPSTATE_2_2.py
+++ b/src/python_testing/TC_OVENOPSTATE_2_2.py
@@ -38,7 +38,7 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OVENOPSTATE_2_3.py b/src/python_testing/TC_OVENOPSTATE_2_3.py
index 815fcef..329bceb 100644
--- a/src/python_testing/TC_OVENOPSTATE_2_3.py
+++ b/src/python_testing/TC_OVENOPSTATE_2_3.py
@@ -38,7 +38,7 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OVENOPSTATE_2_4.py b/src/python_testing/TC_OVENOPSTATE_2_4.py
index 892bf28..ffc6393 100644
--- a/src/python_testing/TC_OVENOPSTATE_2_4.py
+++ b/src/python_testing/TC_OVENOPSTATE_2_4.py
@@ -38,7 +38,7 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OVENOPSTATE_2_5.py b/src/python_testing/TC_OVENOPSTATE_2_5.py
index 4fd9ef9..42edca7 100644
--- a/src/python_testing/TC_OVENOPSTATE_2_5.py
+++ b/src/python_testing/TC_OVENOPSTATE_2_5.py
@@ -39,7 +39,7 @@
 
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OVENOPSTATE_2_6.py b/src/python_testing/TC_OVENOPSTATE_2_6.py
index db4b390..2770625 100644
--- a/src/python_testing/TC_OVENOPSTATE_2_6.py
+++ b/src/python_testing/TC_OVENOPSTATE_2_6.py
@@ -39,7 +39,7 @@
 
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from TC_OpstateCommon import TC_OPSTATE_BASE, TestInfo
 
 
diff --git a/src/python_testing/TC_OpstateCommon.py b/src/python_testing/TC_OpstateCommon.py
index c697c7a..557b760 100644
--- a/src/python_testing/TC_OpstateCommon.py
+++ b/src/python_testing/TC_OpstateCommon.py
@@ -27,7 +27,7 @@
 from chip.clusters.Attribute import EventReadResult, SubscriptionTransaction
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import ClusterAttributeChangeAccumulator, EventChangeCallback, TestStep
+from chip.testing.matter_testing import ClusterAttributeChangeAccumulator, EventChangeCallback, TestStep
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_PS_2_3.py b/src/python_testing/TC_PS_2_3.py
index dbff20e..13f4420 100644
--- a/src/python_testing/TC_PS_2_3.py
+++ b/src/python_testing/TC_PS_2_3.py
@@ -38,8 +38,8 @@
 import time
 
 import chip.clusters as Clusters
-from matter_testing_support import (ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep, async_test_body,
-                                    default_matter_test_main)
+from chip.testing.matter_testing import (ClusterAttributeChangeAccumulator, MatterBaseTest, TestStep, async_test_body,
+                                         default_matter_test_main)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_PWRTL_2_1.py b/src/python_testing/TC_PWRTL_2_1.py
index 639bd3d..3de09c6 100644
--- a/src/python_testing/TC_PWRTL_2_1.py
+++ b/src/python_testing/TC_PWRTL_2_1.py
@@ -37,7 +37,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_RR_1_1.py b/src/python_testing/TC_RR_1_1.py
index 2785171..0cbf027 100644
--- a/src/python_testing/TC_RR_1_1.py
+++ b/src/python_testing/TC_RR_1_1.py
@@ -45,8 +45,8 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status as StatusEnum
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from chip.utils import CommissioningBuildingBlocks
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 from TC_SC_3_6 import AttributeChangeAccumulator, ResubscriptionCatcher
 
diff --git a/src/python_testing/TC_RVCCLEANM_1_2.py b/src/python_testing/TC_RVCCLEANM_1_2.py
index 9e4bca4..3dfd75f 100644
--- a/src/python_testing/TC_RVCCLEANM_1_2.py
+++ b/src/python_testing/TC_RVCCLEANM_1_2.py
@@ -39,7 +39,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_RVCCLEANM_2_1.py b/src/python_testing/TC_RVCCLEANM_2_1.py
index 2c4ddd1..5234a74 100644
--- a/src/python_testing/TC_RVCCLEANM_2_1.py
+++ b/src/python_testing/TC_RVCCLEANM_2_1.py
@@ -41,7 +41,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 # This test requires several additional command line arguments
diff --git a/src/python_testing/TC_RVCCLEANM_2_2.py b/src/python_testing/TC_RVCCLEANM_2_2.py
index 5262465..7352d03 100644
--- a/src/python_testing/TC_RVCCLEANM_2_2.py
+++ b/src/python_testing/TC_RVCCLEANM_2_2.py
@@ -39,7 +39,7 @@
 import enum
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_RVCOPSTATE_2_1.py b/src/python_testing/TC_RVCOPSTATE_2_1.py
index ae3e6c3..48715c3 100644
--- a/src/python_testing/TC_RVCOPSTATE_2_1.py
+++ b/src/python_testing/TC_RVCOPSTATE_2_1.py
@@ -40,7 +40,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_RVCOPSTATE_2_3.py b/src/python_testing/TC_RVCOPSTATE_2_3.py
index 60bbed1..1b52211 100644
--- a/src/python_testing/TC_RVCOPSTATE_2_3.py
+++ b/src/python_testing/TC_RVCOPSTATE_2_3.py
@@ -41,7 +41,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_RVCOPSTATE_2_4.py b/src/python_testing/TC_RVCOPSTATE_2_4.py
index 458b3cf..ad515db 100644
--- a/src/python_testing/TC_RVCOPSTATE_2_4.py
+++ b/src/python_testing/TC_RVCOPSTATE_2_4.py
@@ -39,7 +39,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_RVCRUNM_1_2.py b/src/python_testing/TC_RVCRUNM_1_2.py
index d3040fd..90db160 100644
--- a/src/python_testing/TC_RVCRUNM_1_2.py
+++ b/src/python_testing/TC_RVCRUNM_1_2.py
@@ -39,7 +39,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_RVCRUNM_2_1.py b/src/python_testing/TC_RVCRUNM_2_1.py
index 850faf0..55c37c7 100644
--- a/src/python_testing/TC_RVCRUNM_2_1.py
+++ b/src/python_testing/TC_RVCRUNM_2_1.py
@@ -41,7 +41,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 # This test requires several additional command line arguments
diff --git a/src/python_testing/TC_RVCRUNM_2_2.py b/src/python_testing/TC_RVCRUNM_2_2.py
index f53a755..e78d6d7 100644
--- a/src/python_testing/TC_RVCRUNM_2_2.py
+++ b/src/python_testing/TC_RVCRUNM_2_2.py
@@ -41,7 +41,7 @@
 import enum
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # This test requires several additional command line arguments.
diff --git a/src/python_testing/TC_SC_3_6.py b/src/python_testing/TC_SC_3_6.py
index 74c09e2..8cfbee8 100644
--- a/src/python_testing/TC_SC_3_6.py
+++ b/src/python_testing/TC_SC_3_6.py
@@ -45,8 +45,8 @@
 import chip.clusters as Clusters
 from chip.clusters import ClusterObjects as ClustersObjects
 from chip.clusters.Attribute import SubscriptionTransaction, TypedAttributePath
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from chip.utils import CommissioningBuildingBlocks
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # TODO: Overall, we need to add validation that session IDs have not changed throughout to be agnostic
diff --git a/src/python_testing/TC_SC_7_1.py b/src/python_testing/TC_SC_7_1.py
index 19229b3..315790e 100644
--- a/src/python_testing/TC_SC_7_1.py
+++ b/src/python_testing/TC_SC_7_1.py
@@ -38,12 +38,13 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
 def _trusted_root_test_step(dut_num: int) -> TestStep:
-    read_trusted_roots_over_pase = f'TH establishes a PASE session to DUT{dut_num} using the provided setup code and reads the TrustedRootCertificates attribute from the operational credentials cluster over PASE'
+    read_trusted_roots_over_pase = f'TH establishes a PASE session to DUT{
+        dut_num} using the provided setup code and reads the TrustedRootCertificates attribute from the operational credentials cluster over PASE'
     return TestStep(dut_num, read_trusted_roots_over_pase, "List should be empty as the DUT should be in factory reset ")
 
 
diff --git a/src/python_testing/TC_SEAR_1_2.py b/src/python_testing/TC_SEAR_1_2.py
index 41482be..4177380 100644
--- a/src/python_testing/TC_SEAR_1_2.py
+++ b/src/python_testing/TC_SEAR_1_2.py
@@ -41,7 +41,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_SEAR_1_3.py b/src/python_testing/TC_SEAR_1_3.py
index 9592bce..b55e21d 100644
--- a/src/python_testing/TC_SEAR_1_3.py
+++ b/src/python_testing/TC_SEAR_1_3.py
@@ -41,7 +41,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
@@ -139,7 +139,8 @@
             await self.send_cmd_select_areas_expect_response(step=9, new_areas=valid_areas, expected_response=Clusters.ServiceArea.Enums.SelectAreasStatus.kInvalidInMode)
 
         if self.check_pics("SEAR.S.M.VALID_STATE_FOR_SELECT_AREAS") and self.check_pics("SEAR.S.M.HAS_MANUAL_SELAREA_STATE_CONTROL"):
-            test_step = f"Manually intervene to put the device in a state that allows it to execute the SelectAreas({valid_areas}) command"
+            test_step = f"Manually intervene to put the device in a state that allows it to execute the SelectAreas({
+                valid_areas}) command"
             self.print_step("10", test_step)
             if self.is_ci:
                 self.write_to_app_pipe({"Name": "Reset"})
@@ -155,7 +156,8 @@
             await self.send_cmd_select_areas_expect_response(step=13, new_areas=valid_areas, expected_response=Clusters.ServiceArea.Enums.SelectAreasStatus.kSuccess)
 
         if self.check_pics("SEAR.S.M.VALID_STATE_FOR_SELECT_AREAS") and self.check_pics("SEAR.S.M.HAS_MANUAL_SELAREA_STATE_CONTROL") and self.check_pics("SEAR.S.M.SELECT_AREAS_WHILE_NON_IDLE"):
-            test_step = f"Manually intervene to put the device in a state that allows it to execute the SelectAreas({valid_areas}) command, and put the device in a non-idle state"
+            test_step = f"Manually intervene to put the device in a state that allows it to execute the SelectAreas({
+                valid_areas}) command, and put the device in a non-idle state"
             self.print_step("14", test_step)
             if self.is_ci:
                 self.write_to_app_pipe({"Name": "Reset"})
diff --git a/src/python_testing/TC_SEAR_1_4.py b/src/python_testing/TC_SEAR_1_4.py
index 3f3a84b..cf53f44 100644
--- a/src/python_testing/TC_SEAR_1_4.py
+++ b/src/python_testing/TC_SEAR_1_4.py
@@ -40,7 +40,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_SEAR_1_5.py b/src/python_testing/TC_SEAR_1_5.py
index 99da6da..130ccb8 100644
--- a/src/python_testing/TC_SEAR_1_5.py
+++ b/src/python_testing/TC_SEAR_1_5.py
@@ -41,7 +41,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_SEAR_1_6.py b/src/python_testing/TC_SEAR_1_6.py
index 434da00..dc6188a 100644
--- a/src/python_testing/TC_SEAR_1_6.py
+++ b/src/python_testing/TC_SEAR_1_6.py
@@ -41,7 +41,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_SWTCH.py b/src/python_testing/TC_SWTCH.py
index 7cafaa7..3c764c6 100644
--- a/src/python_testing/TC_SWTCH.py
+++ b/src/python_testing/TC_SWTCH.py
@@ -90,10 +90,10 @@
 import test_plan_support
 from chip.clusters import ClusterObjects as ClusterObjects
 from chip.clusters.Attribute import EventReadResult
+from chip.testing.matter_testing import (AttributeValue, ClusterAttributeChangeAccumulator, EventChangeCallback, MatterBaseTest,
+                                         TestStep, await_sequence_of_reports, default_matter_test_main, has_feature,
+                                         run_if_endpoint_matches)
 from chip.tlv import uint
-from matter_testing_support import (AttributeValue, ClusterAttributeChangeAccumulator, EventChangeCallback, MatterBaseTest,
-                                    TestStep, await_sequence_of_reports, default_matter_test_main, has_feature,
-                                    run_if_endpoint_matches)
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
@@ -281,7 +281,8 @@
         elapsed = 0.0
         time_remaining = timeout_sec
 
-        logging.info(f"Waiting {timeout_sec:.1f} seconds for no more events for cluster {expected_cluster} on endpoint {endpoint_id}")
+        logging.info(f"Waiting {timeout_sec: .1f} seconds for no more events for cluster {
+                     expected_cluster} on endpoint {endpoint_id}")
         while time_remaining > 0:
             try:
                 item: EventReadResult = event_queue.get(block=True, timeout=time_remaining)
diff --git a/src/python_testing/TC_TIMESYNC_2_1.py b/src/python_testing/TC_TIMESYNC_2_1.py
index 9858976..cb2df9d 100644
--- a/src/python_testing/TC_TIMESYNC_2_1.py
+++ b/src/python_testing/TC_TIMESYNC_2_1.py
@@ -41,8 +41,8 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import (MatterBaseTest, default_matter_test_main, has_attribute, has_cluster, run_if_endpoint_matches,
-                                    utc_time_in_matter_epoch)
+from chip.testing.matter_testing import (MatterBaseTest, default_matter_test_main, has_attribute, has_cluster,
+                                         run_if_endpoint_matches, utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_10.py b/src/python_testing/TC_TIMESYNC_2_10.py
index b9aa7da..99ca9f3 100644
--- a/src/python_testing/TC_TIMESYNC_2_10.py
+++ b/src/python_testing/TC_TIMESYNC_2_10.py
@@ -43,9 +43,9 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError
+from chip.testing.matter_testing import (MatterBaseTest, SimpleEventCallback, async_test_body, default_matter_test_main,
+                                         utc_time_in_matter_epoch)
 from chip.tlv import uint
-from matter_testing_support import (MatterBaseTest, SimpleEventCallback, async_test_body, default_matter_test_main,
-                                    utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_11.py b/src/python_testing/TC_TIMESYNC_2_11.py
index 1aaed7a..0865bc8 100644
--- a/src/python_testing/TC_TIMESYNC_2_11.py
+++ b/src/python_testing/TC_TIMESYNC_2_11.py
@@ -43,9 +43,9 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError
+from chip.testing.matter_testing import (MatterBaseTest, SimpleEventCallback, async_test_body, default_matter_test_main,
+                                         get_wait_seconds_from_set_time, type_matches, utc_time_in_matter_epoch)
 from chip.tlv import uint
-from matter_testing_support import (MatterBaseTest, SimpleEventCallback, async_test_body, default_matter_test_main,
-                                    get_wait_seconds_from_set_time, type_matches, utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_12.py b/src/python_testing/TC_TIMESYNC_2_12.py
index cd4378f..7677dcf 100644
--- a/src/python_testing/TC_TIMESYNC_2_12.py
+++ b/src/python_testing/TC_TIMESYNC_2_12.py
@@ -43,9 +43,9 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError
+from chip.testing.matter_testing import (MatterBaseTest, SimpleEventCallback, async_test_body, default_matter_test_main,
+                                         get_wait_seconds_from_set_time, type_matches, utc_time_in_matter_epoch)
 from chip.tlv import uint
-from matter_testing_support import (MatterBaseTest, SimpleEventCallback, async_test_body, default_matter_test_main,
-                                    get_wait_seconds_from_set_time, type_matches, utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_13.py b/src/python_testing/TC_TIMESYNC_2_13.py
index 91c679e..8138983 100644
--- a/src/python_testing/TC_TIMESYNC_2_13.py
+++ b/src/python_testing/TC_TIMESYNC_2_13.py
@@ -41,7 +41,7 @@
 import chip.clusters as Clusters
 from chip import ChipDeviceCtrl
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, SimpleEventCallback, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, SimpleEventCallback, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_2.py b/src/python_testing/TC_TIMESYNC_2_2.py
index dff4bd5..74f935a 100644
--- a/src/python_testing/TC_TIMESYNC_2_2.py
+++ b/src/python_testing/TC_TIMESYNC_2_2.py
@@ -40,7 +40,8 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError
-from matter_testing_support import MatterBaseTest, async_test_body, compare_time, default_matter_test_main, utc_time_in_matter_epoch
+from chip.testing.matter_testing import (MatterBaseTest, async_test_body, compare_time, default_matter_test_main,
+                                         utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_4.py b/src/python_testing/TC_TIMESYNC_2_4.py
index a367dca..76fe907 100644
--- a/src/python_testing/TC_TIMESYNC_2_4.py
+++ b/src/python_testing/TC_TIMESYNC_2_4.py
@@ -40,7 +40,8 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches, utc_time_in_matter_epoch
+from chip.testing.matter_testing import (MatterBaseTest, async_test_body, default_matter_test_main, type_matches,
+                                         utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_5.py b/src/python_testing/TC_TIMESYNC_2_5.py
index d62797e..f363f03 100644
--- a/src/python_testing/TC_TIMESYNC_2_5.py
+++ b/src/python_testing/TC_TIMESYNC_2_5.py
@@ -40,7 +40,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, utc_time_in_matter_epoch
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, utc_time_in_matter_epoch
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_6.py b/src/python_testing/TC_TIMESYNC_2_6.py
index f6fe873..0e9ec9f 100644
--- a/src/python_testing/TC_TIMESYNC_2_6.py
+++ b/src/python_testing/TC_TIMESYNC_2_6.py
@@ -40,7 +40,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import Nullable, NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_7.py b/src/python_testing/TC_TIMESYNC_2_7.py
index edc7154..1c6cea2 100644
--- a/src/python_testing/TC_TIMESYNC_2_7.py
+++ b/src/python_testing/TC_TIMESYNC_2_7.py
@@ -42,9 +42,9 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError
+from chip.testing.matter_testing import (MatterBaseTest, async_test_body, compare_time, default_matter_test_main, type_matches,
+                                         utc_time_in_matter_epoch)
 from chip.tlv import uint
-from matter_testing_support import (MatterBaseTest, async_test_body, compare_time, default_matter_test_main, type_matches,
-                                    utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_8.py b/src/python_testing/TC_TIMESYNC_2_8.py
index 0778534..82a77c4 100644
--- a/src/python_testing/TC_TIMESYNC_2_8.py
+++ b/src/python_testing/TC_TIMESYNC_2_8.py
@@ -42,9 +42,9 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError
+from chip.testing.matter_testing import (MatterBaseTest, async_test_body, compare_time, default_matter_test_main, type_matches,
+                                         utc_time_in_matter_epoch)
 from chip.tlv import uint
-from matter_testing_support import (MatterBaseTest, async_test_body, compare_time, default_matter_test_main, type_matches,
-                                    utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_2_9.py b/src/python_testing/TC_TIMESYNC_2_9.py
index 1f439b8..4ce83f8 100644
--- a/src/python_testing/TC_TIMESYNC_2_9.py
+++ b/src/python_testing/TC_TIMESYNC_2_9.py
@@ -41,9 +41,9 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError
+from chip.testing.matter_testing import (MatterBaseTest, async_test_body, compare_time, default_matter_test_main, type_matches,
+                                         utc_time_in_matter_epoch)
 from chip.tlv import uint
-from matter_testing_support import (MatterBaseTest, async_test_body, compare_time, default_matter_test_main, type_matches,
-                                    utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TIMESYNC_3_1.py b/src/python_testing/TC_TIMESYNC_3_1.py
index 3f292d0..4c7c9d9 100644
--- a/src/python_testing/TC_TIMESYNC_3_1.py
+++ b/src/python_testing/TC_TIMESYNC_3_1.py
@@ -35,7 +35,7 @@
 # === END CI TEST ARGUMENTS ===
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TMP_2_1.py b/src/python_testing/TC_TMP_2_1.py
index f48b969..d0ae9cf 100644
--- a/src/python_testing/TC_TMP_2_1.py
+++ b/src/python_testing/TC_TMP_2_1.py
@@ -16,7 +16,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_TSTAT_4_2.py b/src/python_testing/TC_TSTAT_4_2.py
index fa77f94..6dad144 100644
--- a/src/python_testing/TC_TSTAT_4_2.py
+++ b/src/python_testing/TC_TSTAT_4_2.py
@@ -43,7 +43,7 @@
 from chip.clusters import Globals
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 logger = logging.getLogger(__name__)
diff --git a/src/python_testing/TC_TestEventTrigger.py b/src/python_testing/TC_TestEventTrigger.py
index 3805354..ae4f64a 100644
--- a/src/python_testing/TC_TestEventTrigger.py
+++ b/src/python_testing/TC_TestEventTrigger.py
@@ -43,7 +43,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # Assumes `--enable-key 000102030405060708090a0b0c0d0e0f` on Linux app command line, or a DUT
diff --git a/src/python_testing/TC_VALCC_2_1.py b/src/python_testing/TC_VALCC_2_1.py
index a079c88..d6f00b0 100644
--- a/src/python_testing/TC_VALCC_2_1.py
+++ b/src/python_testing/TC_VALCC_2_1.py
@@ -35,7 +35,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_VALCC_3_1.py b/src/python_testing/TC_VALCC_3_1.py
index f4c6ebf..4b53ab0 100644
--- a/src/python_testing/TC_VALCC_3_1.py
+++ b/src/python_testing/TC_VALCC_3_1.py
@@ -36,7 +36,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_VALCC_3_2.py b/src/python_testing/TC_VALCC_3_2.py
index 0609051..6905e3b 100644
--- a/src/python_testing/TC_VALCC_3_2.py
+++ b/src/python_testing/TC_VALCC_3_2.py
@@ -37,7 +37,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_VALCC_3_3.py b/src/python_testing/TC_VALCC_3_3.py
index d90065d..a63053c 100644
--- a/src/python_testing/TC_VALCC_3_3.py
+++ b/src/python_testing/TC_VALCC_3_3.py
@@ -37,7 +37,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_VALCC_3_4.py b/src/python_testing/TC_VALCC_3_4.py
index f1363a5..30c57dc 100644
--- a/src/python_testing/TC_VALCC_3_4.py
+++ b/src/python_testing/TC_VALCC_3_4.py
@@ -35,7 +35,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_VALCC_4_1.py b/src/python_testing/TC_VALCC_4_1.py
index a103898..9af428d 100644
--- a/src/python_testing/TC_VALCC_4_1.py
+++ b/src/python_testing/TC_VALCC_4_1.py
@@ -36,7 +36,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_VALCC_4_2.py b/src/python_testing/TC_VALCC_4_2.py
index f2f0dd6..9365e5b 100644
--- a/src/python_testing/TC_VALCC_4_2.py
+++ b/src/python_testing/TC_VALCC_4_2.py
@@ -36,7 +36,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_VALCC_4_3.py b/src/python_testing/TC_VALCC_4_3.py
index a66d4ea..b0762d0 100644
--- a/src/python_testing/TC_VALCC_4_3.py
+++ b/src/python_testing/TC_VALCC_4_3.py
@@ -36,7 +36,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_VALCC_4_4.py b/src/python_testing/TC_VALCC_4_4.py
index f6ad63d..b85ff9a 100644
--- a/src/python_testing/TC_VALCC_4_4.py
+++ b/src/python_testing/TC_VALCC_4_4.py
@@ -36,7 +36,8 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, utc_time_in_matter_epoch
+from chip.testing.matter_testing import (MatterBaseTest, TestStep, async_test_body, default_matter_test_main,
+                                         utc_time_in_matter_epoch)
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_VALCC_4_5.py b/src/python_testing/TC_VALCC_4_5.py
index 3b850c0..c6b7674 100644
--- a/src/python_testing/TC_VALCC_4_5.py
+++ b/src/python_testing/TC_VALCC_4_5.py
@@ -36,7 +36,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_WHM_1_2.py b/src/python_testing/TC_WHM_1_2.py
index 9d7d9b2..2bbcdd5 100644
--- a/src/python_testing/TC_WHM_1_2.py
+++ b/src/python_testing/TC_WHM_1_2.py
@@ -41,7 +41,7 @@
 import logging
 
 import chip.clusters as Clusters
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_WHM_2_1.py b/src/python_testing/TC_WHM_2_1.py
index 6172ee0..b9dcb02 100644
--- a/src/python_testing/TC_WHM_2_1.py
+++ b/src/python_testing/TC_WHM_2_1.py
@@ -43,7 +43,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/TC_pics_checker.py b/src/python_testing/TC_pics_checker.py
index 91e2102..07e8613 100644
--- a/src/python_testing/TC_pics_checker.py
+++ b/src/python_testing/TC_pics_checker.py
@@ -17,13 +17,13 @@
 import math
 
 import chip.clusters as Clusters
-from basic_composition_support import BasicCompositionTests
-from global_attribute_ids import GlobalAttributeIds
-from matter_testing_support import (AttributePathLocation, ClusterPathLocation, CommandPathLocation, FeaturePathLocation,
-                                    MatterBaseTest, ProblemLocation, TestStep, async_test_body, default_matter_test_main)
+from chip.testing.basic_composition import BasicCompositionTests
+from chip.testing.global_attribute_ids import GlobalAttributeIds
+from chip.testing.matter_testing import (AttributePathLocation, ClusterPathLocation, CommandPathLocation, FeaturePathLocation,
+                                         MatterBaseTest, ProblemLocation, TestStep, async_test_body, default_matter_test_main)
+from chip.testing.pics import accepted_cmd_pics_str, attribute_pics_str, feature_pics_str, generated_cmd_pics_str
+from chip.testing.spec_parsing import build_xml_clusters
 from mobly import asserts
-from pics_support import accepted_cmd_pics_str, attribute_pics_str, feature_pics_str, generated_cmd_pics_str
-from spec_parsing_support import build_xml_clusters
 
 
 class TC_PICS_Checker(MatterBaseTest, BasicCompositionTests):
diff --git a/src/python_testing/TestBatchInvoke.py b/src/python_testing/TestBatchInvoke.py
index a17f7b8..6465692 100644
--- a/src/python_testing/TestBatchInvoke.py
+++ b/src/python_testing/TestBatchInvoke.py
@@ -38,7 +38,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, type_matches
 from mobly import asserts
 
 ''' Integration test of batch commands using UnitTesting Cluster
diff --git a/src/python_testing/TestChoiceConformanceSupport.py b/src/python_testing/TestChoiceConformanceSupport.py
index 8436bc8..77eca93 100644
--- a/src/python_testing/TestChoiceConformanceSupport.py
+++ b/src/python_testing/TestChoiceConformanceSupport.py
@@ -19,11 +19,11 @@
 import xml.etree.ElementTree as ElementTree
 
 import jinja2
-from choice_conformance_support import (evaluate_attribute_choice_conformance, evaluate_command_choice_conformance,
-                                        evaluate_feature_choice_conformance)
-from matter_testing_support import MatterBaseTest, ProblemNotice, default_matter_test_main
+from chip.testing.choice_conformance import (evaluate_attribute_choice_conformance, evaluate_command_choice_conformance,
+                                             evaluate_feature_choice_conformance)
+from chip.testing.matter_testing import MatterBaseTest, ProblemNotice, default_matter_test_main
+from chip.testing.spec_parsing import XmlCluster, add_cluster_data_from_xml
 from mobly import asserts
-from spec_parsing_support import XmlCluster, add_cluster_data_from_xml
 
 FEATURE_TEMPLATE = '''\
     <feature bit="{{ id }}" code="{{ name }}" name="{{ name }}" summary="summary">
diff --git a/src/python_testing/TestCommissioningTimeSync.py b/src/python_testing/TestCommissioningTimeSync.py
index dfd03d9..d4033ea 100644
--- a/src/python_testing/TestCommissioningTimeSync.py
+++ b/src/python_testing/TestCommissioningTimeSync.py
@@ -20,7 +20,7 @@
 from chip import ChipDeviceCtrl
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, utc_time_in_matter_epoch
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main, utc_time_in_matter_epoch
 from mobly import asserts
 
 # We don't have a good pipe between the c++ enums in CommissioningDelegate and python
diff --git a/src/python_testing/TestConformanceSupport.py b/src/python_testing/TestConformanceSupport.py
index 3744b6f..ca41bf0 100644
--- a/src/python_testing/TestConformanceSupport.py
+++ b/src/python_testing/TestConformanceSupport.py
@@ -18,11 +18,11 @@
 import xml.etree.ElementTree as ElementTree
 from typing import Callable
 
+from chip.testing.conformance import (Choice, Conformance, ConformanceDecision, ConformanceException, ConformanceParseParameters,
+                                      deprecated, disallowed, mandatory, optional, parse_basic_callable_from_xml,
+                                      parse_callable_from_xml, parse_device_type_callable_from_xml, provisional, zigbee)
+from chip.testing.matter_testing import MatterBaseTest, default_matter_test_main
 from chip.tlv import uint
-from conformance_support import (Choice, Conformance, ConformanceDecision, ConformanceException, ConformanceParseParameters,
-                                 deprecated, disallowed, mandatory, optional, parse_basic_callable_from_xml,
-                                 parse_callable_from_xml, parse_device_type_callable_from_xml, provisional, zigbee)
-from matter_testing_support import MatterBaseTest, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TestConformanceTest.py b/src/python_testing/TestConformanceTest.py
index f0ff803..ddf3e42 100644
--- a/src/python_testing/TestConformanceTest.py
+++ b/src/python_testing/TestConformanceTest.py
@@ -18,12 +18,12 @@
 from typing import Any
 
 import chip.clusters as Clusters
-from basic_composition_support import arls_populated
-from conformance_support import ConformanceDecision
-from global_attribute_ids import GlobalAttributeIds
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.basic_composition import arls_populated
+from chip.testing.conformance import ConformanceDecision
+from chip.testing.global_attribute_ids import GlobalAttributeIds
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.spec_parsing import build_xml_clusters, build_xml_device_types
 from mobly import asserts
-from spec_parsing_support import build_xml_clusters, build_xml_device_types
 from TC_DeviceConformance import DeviceConformanceTests
 
 
diff --git a/src/python_testing/TestGroupTableReports.py b/src/python_testing/TestGroupTableReports.py
index 6e3980b..9d98a05 100644
--- a/src/python_testing/TestGroupTableReports.py
+++ b/src/python_testing/TestGroupTableReports.py
@@ -42,7 +42,7 @@
 from chip.clusters import ClusterObjects as ClusterObjects
 from chip.clusters.Attribute import SubscriptionTransaction, TypedAttributePath
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TestIdChecks.py b/src/python_testing/TestIdChecks.py
index 8969807..eda01ef 100644
--- a/src/python_testing/TestIdChecks.py
+++ b/src/python_testing/TestIdChecks.py
@@ -15,9 +15,10 @@
 #    limitations under the License.
 #
 
-from global_attribute_ids import (AttributeIdType, ClusterIdType, DeviceTypeIdType, attribute_id_type, cluster_id_type,
-                                  device_type_id_type, is_valid_attribute_id, is_valid_cluster_id, is_valid_device_type_id)
-from matter_testing_support import MatterBaseTest, default_matter_test_main
+from chip.testing.global_attribute_ids import (AttributeIdType, ClusterIdType, DeviceTypeIdType, attribute_id_type, cluster_id_type,
+                                               device_type_id_type, is_valid_attribute_id, is_valid_cluster_id,
+                                               is_valid_device_type_id)
+from chip.testing.matter_testing import MatterBaseTest, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/TestMatterTestingSupport.py b/src/python_testing/TestMatterTestingSupport.py
index 08c3e83..811349b 100644
--- a/src/python_testing/TestMatterTestingSupport.py
+++ b/src/python_testing/TestMatterTestingSupport.py
@@ -22,14 +22,15 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import Nullable, NullValue
+from chip.testing.matter_testing import (MatterBaseTest, async_test_body, compare_time, default_matter_test_main,
+                                         get_wait_seconds_from_set_time, parse_matter_test_args, type_matches,
+                                         utc_time_in_matter_epoch)
+from chip.testing.pics import parse_pics, parse_pics_xml
+from chip.testing.taglist_and_topology_test import (TagProblem, create_device_type_list_for_root, create_device_type_lists,
+                                                    find_tag_list_problems, find_tree_roots, flat_list_ok, get_all_children,
+                                                    get_direct_children_of_root, parts_list_cycles, separate_endpoint_types)
 from chip.tlv import uint
-from matter_testing_support import (MatterBaseTest, async_test_body, compare_time, default_matter_test_main,
-                                    get_wait_seconds_from_set_time, parse_matter_test_args, type_matches, utc_time_in_matter_epoch)
 from mobly import asserts, signals
-from pics_support import parse_pics, parse_pics_xml
-from taglist_and_topology_test_support import (TagProblem, create_device_type_list_for_root, create_device_type_lists,
-                                               find_tag_list_problems, find_tree_roots, flat_list_ok, get_all_children,
-                                               get_direct_children_of_root, parts_list_cycles, separate_endpoint_types)
 
 
 def get_raw_type_list():
diff --git a/src/python_testing/TestSpecParsingDeviceType.py b/src/python_testing/TestSpecParsingDeviceType.py
index 7729cce..a9ee14f 100644
--- a/src/python_testing/TestSpecParsingDeviceType.py
+++ b/src/python_testing/TestSpecParsingDeviceType.py
@@ -18,12 +18,12 @@
 
 import chip.clusters as Clusters
 from chip.clusters import Attribute
+from chip.testing.conformance import conformance_allowed
+from chip.testing.matter_testing import MatterBaseTest, default_matter_test_main
+from chip.testing.spec_parsing import build_xml_clusters, build_xml_device_types, parse_single_device_type
 from chip.tlv import uint
-from conformance_support import conformance_allowed
 from jinja2 import Template
-from matter_testing_support import MatterBaseTest, default_matter_test_main
 from mobly import asserts
-from spec_parsing_support import build_xml_clusters, build_xml_device_types, parse_single_device_type
 from TC_DeviceConformance import DeviceConformanceTests
 
 
diff --git a/src/python_testing/TestSpecParsingSupport.py b/src/python_testing/TestSpecParsingSupport.py
index 4e0171b..b4c908c 100644
--- a/src/python_testing/TestSpecParsingSupport.py
+++ b/src/python_testing/TestSpecParsingSupport.py
@@ -15,17 +15,16 @@
 #    limitations under the License.
 #
 
-import os
 import xml.etree.ElementTree as ElementTree
 
 import chip.clusters as Clusters
 import jinja2
-from global_attribute_ids import GlobalAttributeIds
-from matter_testing_support import MatterBaseTest, ProblemNotice, default_matter_test_main
+from chip.testing.global_attribute_ids import GlobalAttributeIds
+from chip.testing.matter_testing import MatterBaseTest, ProblemNotice, default_matter_test_main
+from chip.testing.spec_parsing import (ClusterParser, DataModelLevel, PrebuiltDataModelDirectory, SpecParsingException, XmlCluster,
+                                       add_cluster_data_from_xml, build_xml_clusters, check_clusters_for_unknown_commands,
+                                       combine_derived_clusters_with_base, get_data_model_directory)
 from mobly import asserts
-from spec_parsing_support import (ClusterParser, PrebuiltDataModelDirectory, SpecParsingException, XmlCluster,
-                                  add_cluster_data_from_xml, build_xml_clusters, check_clusters_for_unknown_commands,
-                                  combine_derived_clusters_with_base)
 
 # TODO: improve the test coverage here
 # https://github.com/project-chip/connectedhomeip/issues/30958
@@ -272,10 +271,10 @@
         asserts.assert_equal(set(one_four_clusters.keys())-set(tot_xml_clusters.keys()),
                              set(), "There are some 1.4 clusters that are not included in the TOT spec")
 
-        str_path = str(os.path.join(os.path.dirname(os.path.realpath(__file__)),
-                       '..', '..', 'data_model', '1.4', 'clusters'))
+        str_path = get_data_model_directory(PrebuiltDataModelDirectory.k1_4, DataModelLevel.kCluster)
         string_override_check, problems = build_xml_clusters(str_path)
-        asserts.assert_equal(string_override_check.keys(), self.spec_xml_clusters.keys(), "Mismatched cluster generation")
+
+        asserts.assert_count_equal(string_override_check.keys(), self.spec_xml_clusters.keys(), "Mismatched cluster generation")
 
         with asserts.assert_raises(SpecParsingException):
             build_xml_clusters("baddir")
diff --git a/src/python_testing/TestTimeSyncTrustedTimeSource.py b/src/python_testing/TestTimeSyncTrustedTimeSource.py
index 2f4c9a1..50bca6f 100644
--- a/src/python_testing/TestTimeSyncTrustedTimeSource.py
+++ b/src/python_testing/TestTimeSyncTrustedTimeSource.py
@@ -18,7 +18,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 # We don't have a good pipe between the c++ enums in CommissioningDelegate and python
diff --git a/src/python_testing/TestUnitTestingErrorPath.py b/src/python_testing/TestUnitTestingErrorPath.py
index 70d7b96..872f1fa 100644
--- a/src/python_testing/TestUnitTestingErrorPath.py
+++ b/src/python_testing/TestUnitTestingErrorPath.py
@@ -38,7 +38,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main
 from mobly import asserts
 
 """ Integration test for error path returns via the UnitTesting cluster.
diff --git a/src/python_testing/drlk_2_x_common.py b/src/python_testing/drlk_2_x_common.py
index 92c0ab2..cdd1382 100644
--- a/src/python_testing/drlk_2_x_common.py
+++ b/src/python_testing/drlk_2_x_common.py
@@ -23,7 +23,7 @@
 import chip.clusters as Clusters
 from chip.clusters.Types import NullValue
 from chip.interaction_model import InteractionModelError, Status
-from matter_testing_support import type_matches
+from chip.testing.matter_testing import type_matches
 from mobly import asserts
 
 
diff --git a/src/python_testing/execute_python_tests.py b/src/python_testing/execute_python_tests.py
index 4e67821..34a3918 100644
--- a/src/python_testing/execute_python_tests.py
+++ b/src/python_testing/execute_python_tests.py
@@ -53,7 +53,7 @@
     # Define the base command to run tests
     base_command = os.path.join(chip_root, "scripts/tests/run_python_test.py")
 
-    # Define the files and patterns to exclude
+    # Define the test python script files and patterns to exclude
     excluded_patterns = {
         "MinimalRepresentation.py",  # Code/Test not being used or not shared code for any other tests
         "TC_CNET_4_4.py",  # It has no CI execution block, is not executed in CI
@@ -84,14 +84,6 @@
         "hello_test.py",  # Is a template for tests
         "test_plan_support.py",  # Shared code for TC_*, not a standalone test
         "test_plan_table_generator.py",  # Code/Test not being used or not shared code for any other tests
-        "basic_composition_support.py",  # Test support/shared code script, not a standalone test
-        "choice_conformance_support.py",  # Test support/shared code script, not a standalone test
-        "conformance_support.py",  # Test support/shared code script, not a standalone test
-        "global_attribute_ids.py",  # Test support/shared code script, not a standalone test
-        "matter_testing_support.py",  # Test support/shared code script, not a standalone test
-        "pics_support.py",  # Test support/shared code script, not a standalone test
-        "spec_parsing_support.py",  # Test support/shared code script, not a standalone test
-        "taglist_and_topology_test_support.py"  # Test support/shared code script, not a standalone test
     }
 
     # Get all .py files in the directory
diff --git a/src/python_testing/hello_external_runner.py b/src/python_testing/hello_external_runner.py
index 5f00eeb..64af55c 100755
--- a/src/python_testing/hello_external_runner.py
+++ b/src/python_testing/hello_external_runner.py
@@ -23,8 +23,8 @@
 from multiprocessing import Process
 from multiprocessing.managers import BaseManager
 
+from chip.testing.matter_testing import MatterTestConfig, get_test_info, run_tests
 from hello_test import HelloTest
-from matter_testing_support import MatterTestConfig, get_test_info, run_tests
 
 try:
     from matter_yamltests.hooks import TestRunnerHooks
diff --git a/src/python_testing/hello_test.py b/src/python_testing/hello_test.py
index 0793ee3..2d910b1 100644
--- a/src/python_testing/hello_test.py
+++ b/src/python_testing/hello_test.py
@@ -38,7 +38,7 @@
 
 import chip.clusters as Clusters
 from chip.interaction_model import Status
-from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
+from chip.testing.matter_testing import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
 from mobly import asserts
 
 
diff --git a/src/python_testing/matter_testing_infrastructure/BUILD.gn b/src/python_testing/matter_testing_infrastructure/BUILD.gn
index 41bbcef..19c7aee 100644
--- a/src/python_testing/matter_testing_infrastructure/BUILD.gn
+++ b/src/python_testing/matter_testing_infrastructure/BUILD.gn
@@ -18,7 +18,6 @@
 import("//build_overrides/pigweed.gni")
 import("$dir_pw_build/python.gni")
 
-# Python package for CHIP testing support.
 pw_python_package("chip-testing") {
   setup = [
     "setup.py",
@@ -31,7 +30,15 @@
   sources = [
     "chip/testing/__init__.py",
     "chip/testing/apps.py",
+    "chip/testing/basic_composition.py",
+    "chip/testing/choice_conformance.py",
+    "chip/testing/conformance.py",
+    "chip/testing/global_attribute_ids.py",
+    "chip/testing/matter_testing.py",
     "chip/testing/metadata.py",
+    "chip/testing/pics.py",
+    "chip/testing/spec_parsing.py",
+    "chip/testing/taglist_and_topology_test.py",
     "chip/testing/tasks.py",
   ]
 
diff --git a/src/python_testing/matter_testing_infrastructure/chip/testing/apps.py b/src/python_testing/matter_testing_infrastructure/chip/testing/apps.py
index af56efc..3b21a1c 100644
--- a/src/python_testing/matter_testing_infrastructure/chip/testing/apps.py
+++ b/src/python_testing/matter_testing_infrastructure/chip/testing/apps.py
@@ -16,7 +16,7 @@
 import signal
 import tempfile
 
-from .tasks import Subprocess
+from chip.testing.tasks import Subprocess
 
 
 class AppServerSubprocess(Subprocess):
diff --git a/src/python_testing/basic_composition_support.py b/src/python_testing/matter_testing_infrastructure/chip/testing/basic_composition.py
similarity index 100%
rename from src/python_testing/basic_composition_support.py
rename to src/python_testing/matter_testing_infrastructure/chip/testing/basic_composition.py
diff --git a/src/python_testing/choice_conformance_support.py b/src/python_testing/matter_testing_infrastructure/chip/testing/choice_conformance.py
similarity index 92%
rename from src/python_testing/choice_conformance_support.py
rename to src/python_testing/matter_testing_infrastructure/chip/testing/choice_conformance.py
index 58d37bf..7e7775d 100644
--- a/src/python_testing/choice_conformance_support.py
+++ b/src/python_testing/matter_testing_infrastructure/chip/testing/choice_conformance.py
@@ -1,8 +1,8 @@
+from chip.testing.conformance import Choice, ConformanceDecisionWithChoice
+from chip.testing.global_attribute_ids import GlobalAttributeIds
+from chip.testing.matter_testing import AttributePathLocation, ProblemNotice, ProblemSeverity
+from chip.testing.spec_parsing import XmlCluster
 from chip.tlv import uint
-from conformance_support import Choice, ConformanceDecisionWithChoice
-from global_attribute_ids import GlobalAttributeIds
-from matter_testing_support import AttributePathLocation, ProblemNotice, ProblemSeverity
-from spec_parsing_support import XmlCluster
 
 
 class ChoiceConformanceProblemNotice(ProblemNotice):
diff --git a/src/python_testing/conformance_support.py b/src/python_testing/matter_testing_infrastructure/chip/testing/conformance.py
similarity index 100%
rename from src/python_testing/conformance_support.py
rename to src/python_testing/matter_testing_infrastructure/chip/testing/conformance.py
diff --git a/src/python_testing/global_attribute_ids.py b/src/python_testing/matter_testing_infrastructure/chip/testing/global_attribute_ids.py
similarity index 100%
rename from src/python_testing/global_attribute_ids.py
rename to src/python_testing/matter_testing_infrastructure/chip/testing/global_attribute_ids.py
diff --git a/src/python_testing/matter_testing_support.py b/src/python_testing/matter_testing_infrastructure/chip/testing/matter_testing.py
similarity index 98%
rename from src/python_testing/matter_testing_support.py
rename to src/python_testing/matter_testing_infrastructure/chip/testing/matter_testing.py
index 2e153a3..2d23a9f 100644
--- a/src/python_testing/matter_testing_support.py
+++ b/src/python_testing/matter_testing_infrastructure/chip/testing/matter_testing.py
@@ -65,12 +65,12 @@
 from chip.interaction_model import InteractionModelError, Status
 from chip.setup_payload import SetupPayload
 from chip.storage import PersistentStorage
+from chip.testing.global_attribute_ids import GlobalAttributeIds
+from chip.testing.pics import read_pics_from_file
 from chip.tracing import TracingContext
-from global_attribute_ids import GlobalAttributeIds
 from mobly import asserts, base_test, signals, utils
 from mobly.config_parser import ENV_MOBLY_LOGPATH, TestRunConfig
 from mobly.test_runner import TestRunner
-from pics_support import read_pics_from_file
 
 try:
     from matter_yamltests.hooks import TestRunnerHooks
@@ -2278,7 +2278,7 @@
     In this case, only one test class in a test script is allowed.
     To make your test script executable, add the following to your file:
     .. code-block:: python
-      from matter_testing_support.py import default_matter_test_main
+      from chip.testing.matter_testing.py import default_matter_test_main
       ...
       if __name__ == '__main__':
         default_matter_test_main.main()
diff --git a/src/python_testing/pics_support.py b/src/python_testing/matter_testing_infrastructure/chip/testing/pics.py
similarity index 100%
rename from src/python_testing/pics_support.py
rename to src/python_testing/matter_testing_infrastructure/chip/testing/pics.py
diff --git a/src/python_testing/spec_parsing_support.py b/src/python_testing/matter_testing_infrastructure/chip/testing/spec_parsing.py
similarity index 94%
rename from src/python_testing/spec_parsing_support.py
rename to src/python_testing/matter_testing_infrastructure/chip/testing/spec_parsing.py
index 75ffea1..97a1360 100644
--- a/src/python_testing/spec_parsing_support.py
+++ b/src/python_testing/matter_testing_infrastructure/chip/testing/spec_parsing.py
@@ -26,14 +26,14 @@
 from typing import Callable, Optional
 
 import chip.clusters as Clusters
-import conformance_support
+import chip.testing.conformance as conformance_support
+from chip.testing.conformance import (OPTIONAL_CONFORM, TOP_LEVEL_CONFORMANCE_TAGS, ConformanceDecision, ConformanceException,
+                                      ConformanceParseParameters, feature, is_disallowed, mandatory, optional, or_operation,
+                                      parse_callable_from_xml, parse_device_type_callable_from_xml)
+from chip.testing.global_attribute_ids import GlobalAttributeIds
+from chip.testing.matter_testing import (AttributePathLocation, ClusterPathLocation, CommandPathLocation, DeviceTypePathLocation,
+                                         EventPathLocation, FeaturePathLocation, ProblemNotice, ProblemSeverity)
 from chip.tlv import uint
-from conformance_support import (OPTIONAL_CONFORM, TOP_LEVEL_CONFORMANCE_TAGS, ConformanceDecision, ConformanceException,
-                                 ConformanceParseParameters, feature, is_disallowed, mandatory, optional, or_operation,
-                                 parse_callable_from_xml, parse_device_type_callable_from_xml)
-from global_attribute_ids import GlobalAttributeIds
-from matter_testing_support import (AttributePathLocation, ClusterPathLocation, CommandPathLocation, DeviceTypePathLocation,
-                                    EventPathLocation, FeaturePathLocation, ProblemNotice, ProblemSeverity)
 
 _PRIVILEGE_STR = {
     None: "N/A",
@@ -518,19 +518,36 @@
     kDeviceType = 'device_types'
 
 
-def _get_data_model_directory(data_model_directory: typing.Union[PrebuiltDataModelDirectory, str], data_model_level: DataModelLevel) -> str:
+def _get_data_model_root() -> str:
+    """Attempts to find ${CHIP_ROOT}/data_model or equivalent."""
+
+    # Since this class is generally in a module, we have to rely on being bootstrapped or
+    # we use CWD if we cannot
+    choices = [os.getcwd()]
+
+    if 'PW_PROJECT_ROOT' in os.environ:
+        choices.insert(0, os.environ['PW_PROJECT_ROOT'])
+
+    for c in choices:
+        data_model_path = os.path.join(c, 'data_model')
+        if os.path.exists(os.path.join(data_model_path, 'master', 'scraper_version')):
+            return data_model_path
+    raise FileNotFoundError('Cannot find a CHIP_ROOT/data_model path. Tried %r as prefixes.' % choices)
+
+
+def get_data_model_directory(data_model_directory: typing.Union[PrebuiltDataModelDirectory, str], data_model_level: DataModelLevel) -> str:
     if data_model_directory == PrebuiltDataModelDirectory.k1_3:
-        return os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', '1.3', data_model_level)
+        return os.path.join(_get_data_model_root(), '1.3', data_model_level)
     elif data_model_directory == PrebuiltDataModelDirectory.k1_4:
-        return os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', '1.4', data_model_level)
+        return os.path.join(_get_data_model_root(), '1.4', data_model_level)
     elif data_model_directory == PrebuiltDataModelDirectory.kMaster:
-        return os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', 'master', data_model_level)
+        return os.path.join(_get_data_model_root(), 'master', data_model_level)
     else:
         return data_model_directory
 
 
 def build_xml_clusters(data_model_directory: typing.Union[PrebuiltDataModelDirectory, str] = PrebuiltDataModelDirectory.k1_4) -> tuple[dict[uint, XmlCluster], list[ProblemNotice]]:
-    dir = _get_data_model_directory(data_model_directory, DataModelLevel.kCluster)
+    dir = get_data_model_directory(data_model_directory, DataModelLevel.kCluster)
 
     clusters: dict[int, XmlCluster] = {}
     pure_base_clusters: dict[str, XmlCluster] = {}
@@ -777,7 +794,7 @@
 
 
 def build_xml_device_types(data_model_directory: typing.Union[PrebuiltDataModelDirectory, str] = PrebuiltDataModelDirectory.k1_4) -> tuple[dict[int, XmlDeviceType], list[ProblemNotice]]:
-    dir = _get_data_model_directory(data_model_directory, DataModelLevel.kDeviceType)
+    dir = get_data_model_directory(data_model_directory, DataModelLevel.kDeviceType)
     device_types: dict[int, XmlDeviceType] = {}
     problems = []
     for xml in glob.glob(f"{dir}/*.xml"):
diff --git a/src/python_testing/taglist_and_topology_test_support.py b/src/python_testing/matter_testing_infrastructure/chip/testing/taglist_and_topology_test.py
similarity index 100%
rename from src/python_testing/taglist_and_topology_test_support.py
rename to src/python_testing/matter_testing_infrastructure/chip/testing/taglist_and_topology_test.py
diff --git a/src/python_testing/post_certification_tests/production_device_checks.py b/src/python_testing/post_certification_tests/production_device_checks.py
index e4262a0..b8e567f 100644
--- a/src/python_testing/post_certification_tests/production_device_checks.py
+++ b/src/python_testing/post_certification_tests/production_device_checks.py
@@ -59,15 +59,15 @@
     os.path.join(os.path.dirname(__file__), '..', '..', '..'))
 
 try:
-    from basic_composition_support import BasicCompositionTests
-    from matter_testing_support import (MatterBaseTest, MatterStackState, MatterTestConfig, TestStep, async_test_body,
-                                        run_tests_no_exit)
+    from chip.testing.basic_composition import BasicCompositionTests
+    from chip.testing.matter_testing import (MatterBaseTest, MatterStackState, MatterTestConfig, TestStep, async_test_body,
+                                             run_tests_no_exit)
 except ImportError:
     sys.path.append(os.path.abspath(
         os.path.join(os.path.dirname(__file__), '..')))
-    from basic_composition_support import BasicCompositionTests
-    from matter_testing_support import (MatterBaseTest, MatterStackState, MatterTestConfig, TestStep, async_test_body,
-                                        run_tests_no_exit)
+    from chip.testing.basic_composition import BasicCompositionTests
+    from chip.testing.matter_testing import (MatterBaseTest, MatterStackState, MatterTestConfig, TestStep, async_test_body,
+                                             run_tests_no_exit)
 
 try:
     import fetch_paa_certs_from_dcl
diff --git a/src/python_testing/test_plan_table_generator.py b/src/python_testing/test_plan_table_generator.py
index c972116..b38f6f9 100755
--- a/src/python_testing/test_plan_table_generator.py
+++ b/src/python_testing/test_plan_table_generator.py
@@ -22,7 +22,7 @@
 from pathlib import Path
 
 import click
-from matter_testing_support import MatterTestConfig, generate_mobly_test_config
+from chip.testing.matter_testing import MatterTestConfig, generate_mobly_test_config
 
 
 def indent_multiline(multiline: str, num_spaces: int) -> str:
diff --git a/src/python_testing/test_testing/MockTestRunner.py b/src/python_testing/test_testing/MockTestRunner.py
index 2d0afb8..6c9bc1c 100644
--- a/src/python_testing/test_testing/MockTestRunner.py
+++ b/src/python_testing/test_testing/MockTestRunner.py
@@ -22,13 +22,7 @@
 from unittest.mock import MagicMock
 
 from chip.clusters import Attribute
-
-try:
-    from matter_testing_support import MatterStackState, MatterTestConfig, run_tests_no_exit
-except ImportError:
-    sys.path.append(os.path.abspath(
-        os.path.join(os.path.dirname(__file__), '..')))
-    from matter_testing_support import MatterStackState, MatterTestConfig, run_tests_no_exit
+from chip.testing.matter_testing import MatterStackState, MatterTestConfig, run_tests_no_exit
 
 
 class AsyncMock(MagicMock):
@@ -56,7 +50,15 @@
     def set_test(self, filename: str, classname: str, test: str):
         self.test = test
         self.config.tests = [self.test]
-        module = importlib.import_module(Path(os.path.basename(filename)).stem)
+
+        module_name = Path(os.path.basename(filename)).stem
+
+        try:
+            module = importlib.import_module(module_name)
+        except ModuleNotFoundError:
+            sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
+            module = importlib.import_module(module_name)
+
         self.test_class = getattr(module, classname)
 
     def set_test_config(self, test_config: MatterTestConfig = MatterTestConfig()):
diff --git a/src/python_testing/test_testing/TestDecorators.py b/src/python_testing/test_testing/TestDecorators.py
index 82b49ed..ce32518 100644
--- a/src/python_testing/test_testing/TestDecorators.py
+++ b/src/python_testing/test_testing/TestDecorators.py
@@ -25,23 +25,13 @@
 #
 # You will get step_* calls as appropriate in between the test_start and test_stop calls if the test is not skipped.
 
-import os
 import sys
+from typing import Optional
 
 import chip.clusters as Clusters
 from chip.clusters import Attribute
-
-try:
-    from matter_testing_support import (MatterBaseTest, MatterTestConfig, async_test_body, has_attribute, has_cluster, has_feature,
-                                        run_if_endpoint_matches, run_on_singleton_matching_endpoint, should_run_test_on_endpoint)
-except ImportError:
-    sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
-    from matter_testing_support import (MatterBaseTest, MatterTestConfig, async_test_body, has_attribute,
-                                        has_cluster, has_feature, run_if_endpoint_matches, run_on_singleton_matching_endpoint,
-                                        should_run_test_on_endpoint)
-
-from typing import Optional
-
+from chip.testing.matter_testing import (MatterBaseTest, MatterTestConfig, async_test_body, has_attribute, has_cluster, has_feature,
+                                         run_if_endpoint_matches, run_on_singleton_matching_endpoint, should_run_test_on_endpoint)
 from mobly import asserts
 from MockTestRunner import MockTestRunner
 
diff --git a/src/python_testing/test_testing/test_IDM_10_4.py b/src/python_testing/test_testing/test_IDM_10_4.py
index 8634e94..8a30609 100644
--- a/src/python_testing/test_testing/test_IDM_10_4.py
+++ b/src/python_testing/test_testing/test_IDM_10_4.py
@@ -21,13 +21,7 @@
 
 import chip.clusters as Clusters
 from chip.clusters import Attribute
-
-try:
-    from pics_support import parse_pics_xml
-except ImportError:
-    sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
-    from pics_support import parse_pics_xml
-
+from chip.testing.pics import parse_pics_xml
 from MockTestRunner import MockTestRunner
 
 # Reachable attribute is off in the pics file
diff --git a/src/python_testing/test_testing/test_TC_CCNTL_2_2.py b/src/python_testing/test_testing/test_TC_CCNTL_2_2.py
index bd28023..6a2dc48 100644
--- a/src/python_testing/test_testing/test_TC_CCNTL_2_2.py
+++ b/src/python_testing/test_testing/test_TC_CCNTL_2_2.py
@@ -30,11 +30,11 @@
 from MockTestRunner import AsyncMock, MockTestRunner
 
 try:
-    from matter_testing_support import MatterTestConfig, get_default_paa_trust_store, run_tests_no_exit
+    from chip.testing.matter_testing import MatterTestConfig, get_default_paa_trust_store, run_tests_no_exit
 except ImportError:
     sys.path.append(os.path.abspath(
         os.path.join(os.path.dirname(__file__), '..')))
-    from matter_testing_support import MatterTestConfig, get_default_paa_trust_store, run_tests_no_exit
+    from chip.testing.matter_testing import MatterTestConfig, get_default_paa_trust_store, run_tests_no_exit
 
 invoke_call_count = 0
 event_call_count = 0
diff --git a/src/python_testing/test_testing/test_TC_MCORE_FS_1_1.py b/src/python_testing/test_testing/test_TC_MCORE_FS_1_1.py
index d79b412..ed9f1b3 100644
--- a/src/python_testing/test_testing/test_TC_MCORE_FS_1_1.py
+++ b/src/python_testing/test_testing/test_TC_MCORE_FS_1_1.py
@@ -30,11 +30,11 @@
 from MockTestRunner import AsyncMock, MockTestRunner
 
 try:
-    from matter_testing_support import MatterTestConfig, get_default_paa_trust_store, run_tests_no_exit
+    from chip.testing.matter_testing import MatterTestConfig, get_default_paa_trust_store, run_tests_no_exit
 except ImportError:
     sys.path.append(os.path.abspath(
         os.path.join(os.path.dirname(__file__), '..')))
-    from matter_testing_support import MatterTestConfig, get_default_paa_trust_store, run_tests_no_exit
+    from chip.testing.matter_testing import MatterTestConfig, get_default_paa_trust_store, run_tests_no_exit
 
 invoke_call_count = 0
 event_call_count = 0
diff --git a/src/python_testing/test_testing/test_TC_SC_7_1.py b/src/python_testing/test_testing/test_TC_SC_7_1.py
index 3b1b6a5..96dced7 100644
--- a/src/python_testing/test_testing/test_TC_SC_7_1.py
+++ b/src/python_testing/test_testing/test_TC_SC_7_1.py
@@ -16,21 +16,14 @@
 #    limitations under the License.
 #
 
-import os
 import sys
 from random import randbytes
 
 import chip.clusters as Clusters
 from chip.clusters import Attribute
+from chip.testing.matter_testing import MatterTestConfig
 from MockTestRunner import MockTestRunner
 
-try:
-    from matter_testing_support import MatterTestConfig
-except ImportError:
-    sys.path.append(os.path.abspath(
-        os.path.join(os.path.dirname(__file__), '..')))
-    from matter_testing_support import MatterTestConfig
-
 
 def read_trusted_root(filled: bool) -> Attribute.AsyncReadTransaction.ReadResponse:
     opcreds = Clusters.OperationalCredentials
diff --git a/src/tools/PICS-generator/PICSGenerator.py b/src/tools/PICS-generator/PICSGenerator.py
index acdeb67..6cfb958 100644
--- a/src/tools/PICS-generator/PICSGenerator.py
+++ b/src/tools/PICS-generator/PICSGenerator.py
@@ -25,10 +25,10 @@
 from pics_generator_support import map_cluster_name_to_pics_xml, pics_xml_file_list_loader
 from rich.console import Console
 
-# Add the path to python_testing folder, in order to be able to import from matter_testing_support
+# Add the path to python_testing folder, in order to be able to import from chip.testing.matter_testing
 sys.path.append(os.path.abspath(sys.path[0] + "/../../python_testing"))
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main  # noqa: E402
-from spec_parsing_support import build_xml_clusters  # noqa: E402
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main  # noqa: E402
+from chip.testing.spec_parsing import build_xml_clusters  # noqa: E402
 
 console = None
 xml_clusters = None
diff --git a/src/tools/PICS-generator/XMLPICSValidator.py b/src/tools/PICS-generator/XMLPICSValidator.py
index d728a61..5fd1704 100644
--- a/src/tools/PICS-generator/XMLPICSValidator.py
+++ b/src/tools/PICS-generator/XMLPICSValidator.py
@@ -23,7 +23,7 @@
 
 # Add the path to python_testing folder, in order to be able to import from matter_testing_support
 sys.path.append(os.path.abspath(sys.path[0] + "/../../python_testing"))
-from spec_parsing_support import build_xml_clusters  # noqa: E402
+from chip.testing.spec_parsing import build_xml_clusters  # noqa: E402
 
 parser = argparse.ArgumentParser()
 parser.add_argument('--pics-template', required=True)
diff --git a/src/tools/device-graph/matter-device-graph.py b/src/tools/device-graph/matter-device-graph.py
index 16a2e6d..5974686 100644
--- a/src/tools/device-graph/matter-device-graph.py
+++ b/src/tools/device-graph/matter-device-graph.py
@@ -23,9 +23,9 @@
 import graphviz
 from rich.console import Console
 
-# Add the path to python_testing folder, in order to be able to import from matter_testing_support
+# Add the path to python_testing folder, in order to be able to import from chip.testing.matter_testing
 sys.path.append(os.path.abspath(sys.path[0] + "/../../python_testing"))
-from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main  # noqa: E402
+from chip.testing.matter_testing import MatterBaseTest, async_test_body, default_matter_test_main  # noqa: E402
 
 console = None
 maxClusterNameLength = 30