Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ICD] Update ICDM 2.1 test #30319

Merged
merged 5 commits into from
Nov 14, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 18 additions & 5 deletions src/python_testing/TC_ICDM_2_1.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
import logging

import chip.clusters as Clusters
from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main
from mobly import asserts

logger = logging.getLogger('PythonMatterControllerTEST')
logger.setLevel(logging.INFO)


class TC_ICDM_2_1(MatterBaseTest):
async def read_icdm_attribute_expect_success(self, endpoint, attribute):
Expand All @@ -27,13 +32,17 @@ async def read_icdm_attribute_expect_success(self, endpoint, attribute):
@async_test_body
async def test_TC_ICDM_2_1(self):

if not self.check_pics("ICDM.S"):
logger.info("Test skipped because PICS ICDM.S is not set")
return

endpoint = self.user_params.get("endpoint", 0)

self.print_step(1, "Commissioning, already done")
attributes = Clusters.IcdManagement.Attributes
idleModeDuration = 0

# Idle Mode Interval attribute test
# Idle Mode Duration attribute test
if (self.check_pics("ICDM.S.A0000")):
self.print_step(2, "Read IdleModeDuration Attribute")

Expand All @@ -44,7 +53,7 @@ async def test_TC_ICDM_2_1(self):
else:
asserts.assert_true(False, "IdleModeDuration is a mandatory attribute and must be present in the PICS file")

# Active Mode Interval attribute test
# Active Mode Duration attribute test
if (self.check_pics("ICDM.S.A0001")):
self.print_step(2, "Read ActiveModeDuration Attribute")

Expand Down Expand Up @@ -80,17 +89,21 @@ async def test_TC_ICDM_2_1(self):
if (self.check_pics("ICDM.S.A0003")):
self.print_step(2, "Read ICDCounter Attribute")

await self.read_icdm_attribute_expect_success(endpoint=endpoint,
attribute=attributes.ICDCounter)
ICDCounter = await self.read_icdm_attribute_expect_success(endpoint=endpoint,
attribute=attributes.ICDCounter)
asserts.assert_true(0 <= ICDCounter <= 4294967295,
"ICDCounter attribute does not fit in a uint32.")

# ClientsSupportedPerFabric attribute test
if (self.check_pics("ICDM.S.A0003")):
self.print_step(2, "Read ClientsSupportedPerFabric Attribute")

clientsSupportedPerFabric = await self.read_icdm_attribute_expect_success(endpoint=endpoint,
attribute=attributes.ClientsSupportedPerFabric)
asserts.assert_true(0 <= clientsSupportedPerFabric <= 65535,
"ActiveModeThreshold ClientsSupportedPerFabric does not fit in a uint16.")
asserts.assert_greater_equal(clientsSupportedPerFabric, 1,
"ActiveModeThreshold attribute is smaller than minimum value (300).")
"ClientsSupportedPerFabric attribute is smaller than minimum value (1).")


if __name__ == "__main__":
Expand Down
Loading