From 35378eecea862c6aa8975d86f90dc0ce825c5a66 Mon Sep 17 00:00:00 2001 From: Romulo Quidute Filho Date: Mon, 20 Oct 2025 18:40:27 +0000 Subject: [PATCH 1/5] Added sdk_docker_tag info --- app/schemas/test_harness_backend_version.py | 1 + .../test_read_test_harness_backend_version.py | 58 ++++++++++++++++++- app/version.py | 32 +++++++++- 3 files changed, 87 insertions(+), 4 deletions(-) diff --git a/app/schemas/test_harness_backend_version.py b/app/schemas/test_harness_backend_version.py index 619ee930..083874ef 100644 --- a/app/schemas/test_harness_backend_version.py +++ b/app/schemas/test_harness_backend_version.py @@ -21,4 +21,5 @@ class TestHarnessBackendVersion(BaseModel): version: str sha: str sdk_sha: str + sdk_docker_tag: str db_revision: str diff --git a/app/tests/version/test_read_test_harness_backend_version.py b/app/tests/version/test_read_test_harness_backend_version.py index f0474a45..30c4de2f 100644 --- a/app/tests/version/test_read_test_harness_backend_version.py +++ b/app/tests/version/test_read_test_harness_backend_version.py @@ -20,7 +20,12 @@ import pytest from app import utils_db -from app.version import read_matter_sdk_sha, read_test_harness_backend_version +from app.version import ( + _get_matter_settings, + read_matter_sdk_docker_tag, + read_matter_sdk_sha, + read_test_harness_backend_version, +) @pytest.mark.serial @@ -52,6 +57,9 @@ def test_read_test_harness_backend_version() -> None: matter_sdk_sha = read_matter_sdk_sha() if matter_sdk_sha is not None: assert backend_version.sdk_sha == matter_sdk_sha + matter_sdk_docker_tag = read_matter_sdk_docker_tag() + if matter_sdk_docker_tag is not None: + assert backend_version.sdk_docker_tag == matter_sdk_docker_tag mock_utils.assert_called_once() @@ -85,6 +93,9 @@ def test_read_test_harness_backend_version_with_empty_files() -> None: matter_sdk_sha = read_matter_sdk_sha() if matter_sdk_sha is not None: assert backend_version.sdk_sha == matter_sdk_sha + matter_sdk_docker_tag = read_matter_sdk_docker_tag() + if matter_sdk_docker_tag is not None: + assert backend_version.sdk_docker_tag == matter_sdk_docker_tag @pytest.mark.serial @@ -115,3 +126,48 @@ def test_read_test_harness_backend_version_with_missing_files() -> None: matter_sdk_sha = read_matter_sdk_sha() if matter_sdk_sha is not None: assert backend_version.sdk_sha == matter_sdk_sha + matter_sdk_docker_tag = read_matter_sdk_docker_tag() + if matter_sdk_docker_tag is not None: + assert backend_version.sdk_docker_tag == matter_sdk_docker_tag + + +@pytest.mark.serial +def test_get_matter_settings() -> None: + """Test _get_matter_settings returns matter_settings when module exists.""" + matter_settings = _get_matter_settings() + if matter_settings is not None: + # If the module is available, verify it has the expected attributes + assert hasattr(matter_settings, "SDK_SHA") + assert hasattr(matter_settings, "SDK_DOCKER_TAG") + + +@pytest.mark.serial +def test_read_matter_sdk_sha() -> None: + """Test read_matter_sdk_sha returns shortened SHA.""" + sdk_sha = read_matter_sdk_sha() + if sdk_sha is not None: + # SHA should be shortened to 7 characters + assert len(sdk_sha) == 7 + # Verify it matches the expected format + assert isinstance(sdk_sha, str) + + +@pytest.mark.serial +def test_read_matter_sdk_docker_tag() -> None: + """Test read_matter_sdk_docker_tag returns docker tag.""" + sdk_docker_tag = read_matter_sdk_docker_tag() + if sdk_docker_tag is not None: + # Docker tag should be a non-empty string + assert isinstance(sdk_docker_tag, str) + assert len(sdk_docker_tag) > 0 + + +@pytest.mark.serial +def test_read_matter_sdk_sha_and_docker_tag_consistency() -> None: + """Test that SDK SHA and Docker Tag are both available or both None.""" + sdk_sha = read_matter_sdk_sha() + sdk_docker_tag = read_matter_sdk_docker_tag() + + # Both should be None or both should have values + # (they come from the same module) + assert (sdk_sha is None) == (sdk_docker_tag is None) diff --git a/app/version.py b/app/version.py index 9130358d..3c2ce7c1 100644 --- a/app/version.py +++ b/app/version.py @@ -40,28 +40,54 @@ def read_test_harness_backend_version() -> TestHarnessBackendVersion: sha_value = utils.read_information_from_file(SHA_FILEPATH) db_revision = utils_db.get_db_revision() sdk_sha_value = read_matter_sdk_sha() or "" + sdk_docker_tag_value = read_matter_sdk_docker_tag() or "" logger.info(f"Test Engine version is {version_value}") logger.info(f"Test Engine SHA is {sha_value}") logger.info(f"Test Engine SDK SHA is {sdk_sha_value}") + logger.info(f"Test Engine SDK Docker Tag is {sdk_docker_tag_value}") return TestHarnessBackendVersion( version=version_value, sha=sha_value, sdk_sha=sdk_sha_value, + sdk_docker_tag=sdk_docker_tag_value, db_revision=db_revision, ) -def read_matter_sdk_sha() -> Optional[str]: +def _get_matter_settings() -> Optional[str]: """ - Retrieve short SDK SHA from settings (The information is kept in config.py file) + Helper function to import and return matter_settings module. + Returns None if the module is not found. """ if importlib.find_loader(MATTER_CONFIG_MODULE) is None: return None matter_config_module = importlib.import_module(MATTER_CONFIG_MODULE) - return matter_config_module.matter_settings.SDK_SHA[:7] + return matter_config_module.matter_settings + + +def read_matter_sdk_sha() -> Optional[str]: + """ + Retrieve short SDK SHA from settings (The information is kept in config.py file) + """ + matter_settings = _get_matter_settings() + if matter_settings is None: + return None + + return matter_settings.SDK_SHA[:7] + + +def read_matter_sdk_docker_tag() -> Optional[str]: + """ + Retrieve SDK Docker Tag from settings (The information is kept in config.py file) + """ + matter_settings = _get_matter_settings() + if matter_settings is None: + return None + + return matter_settings.SDK_DOCKER_TAG[:7] version_information = read_test_harness_backend_version() From 75b0e438c25557713193b2751e12c57da0ac0f4f Mon Sep 17 00:00:00 2001 From: Romulo Quidute Filho Date: Mon, 20 Oct 2025 19:58:34 +0000 Subject: [PATCH 2/5] Print whole SDK_DOCKER_TAG instead of only 7 digits --- app/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/version.py b/app/version.py index 3c2ce7c1..b13f8807 100644 --- a/app/version.py +++ b/app/version.py @@ -87,7 +87,7 @@ def read_matter_sdk_docker_tag() -> Optional[str]: if matter_settings is None: return None - return matter_settings.SDK_DOCKER_TAG[:7] + return matter_settings.SDK_DOCKER_TAG version_information = read_test_harness_backend_version() From 1d44aa7ba4a64ce20c4bf2331b1066528df0c085 Mon Sep 17 00:00:00 2001 From: Romulo Quidute Filho Date: Mon, 20 Oct 2025 20:06:20 +0000 Subject: [PATCH 3/5] Unit test refactoring --- .../test_read_test_harness_backend_version.py | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/app/tests/version/test_read_test_harness_backend_version.py b/app/tests/version/test_read_test_harness_backend_version.py index 30c4de2f..456a6702 100644 --- a/app/tests/version/test_read_test_harness_backend_version.py +++ b/app/tests/version/test_read_test_harness_backend_version.py @@ -20,6 +20,7 @@ import pytest from app import utils_db +from app.schemas.test_harness_backend_version import TestHarnessBackendVersion from app.version import ( _get_matter_settings, read_matter_sdk_docker_tag, @@ -28,6 +29,16 @@ ) +def _assert_sdk_info(backend_version: TestHarnessBackendVersion) -> None: + matter_sdk_sha = read_matter_sdk_sha() + if matter_sdk_sha is not None: + assert backend_version.sdk_sha == matter_sdk_sha + + matter_sdk_docker_tag = read_matter_sdk_docker_tag() + if matter_sdk_docker_tag is not None: + assert backend_version.sdk_docker_tag == matter_sdk_docker_tag + + @pytest.mark.serial def test_read_test_harness_backend_version() -> None: expected_db_revision = "aabbccdd" # spell-checker:disable-line @@ -54,12 +65,7 @@ def test_read_test_harness_backend_version() -> None: assert backend_version.version == expected_version_value assert backend_version.sha == expected_sha_value assert backend_version.db_revision == expected_db_revision - matter_sdk_sha = read_matter_sdk_sha() - if matter_sdk_sha is not None: - assert backend_version.sdk_sha == matter_sdk_sha - matter_sdk_docker_tag = read_matter_sdk_docker_tag() - if matter_sdk_docker_tag is not None: - assert backend_version.sdk_docker_tag == matter_sdk_docker_tag + _assert_sdk_info(backend_version) mock_utils.assert_called_once() @@ -90,12 +96,7 @@ def test_read_test_harness_backend_version_with_empty_files() -> None: assert backend_version.version == expected_version_value assert backend_version.sha == expected_sha_value assert backend_version.db_revision == expected_db_revision - matter_sdk_sha = read_matter_sdk_sha() - if matter_sdk_sha is not None: - assert backend_version.sdk_sha == matter_sdk_sha - matter_sdk_docker_tag = read_matter_sdk_docker_tag() - if matter_sdk_docker_tag is not None: - assert backend_version.sdk_docker_tag == matter_sdk_docker_tag + _assert_sdk_info(backend_version) @pytest.mark.serial @@ -123,12 +124,7 @@ def test_read_test_harness_backend_version_with_missing_files() -> None: assert backend_version.version == expected_version_value assert backend_version.sha == expected_sha_value assert backend_version.db_revision == expected_db_revision - matter_sdk_sha = read_matter_sdk_sha() - if matter_sdk_sha is not None: - assert backend_version.sdk_sha == matter_sdk_sha - matter_sdk_docker_tag = read_matter_sdk_docker_tag() - if matter_sdk_docker_tag is not None: - assert backend_version.sdk_docker_tag == matter_sdk_docker_tag + _assert_sdk_info(backend_version) @pytest.mark.serial From b2a26a1399c42b52c4efd6de66c2b0ab96e7a41e Mon Sep 17 00:00:00 2001 From: Romulo Quidute Filho Date: Mon, 20 Oct 2025 20:09:15 +0000 Subject: [PATCH 4/5] Updated type hint --- app/version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/version.py b/app/version.py index b13f8807..99fdd4c3 100644 --- a/app/version.py +++ b/app/version.py @@ -15,7 +15,7 @@ # import importlib from pathlib import Path -from typing import Optional +from typing import Any, Optional from loguru import logger @@ -56,7 +56,7 @@ def read_test_harness_backend_version() -> TestHarnessBackendVersion: ) -def _get_matter_settings() -> Optional[str]: +def _get_matter_settings() -> Optional[Any]: """ Helper function to import and return matter_settings module. Returns None if the module is not found. From 3b36b0366cf452598a8116498f754081b1deca2a Mon Sep 17 00:00:00 2001 From: Romulo Quidute Filho Date: Mon, 20 Oct 2025 20:11:13 +0000 Subject: [PATCH 5/5] Updared cspell.json --- cspell.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cspell.json b/cspell.json index e5a3985a..01eb8b80 100644 --- a/cspell.json +++ b/cspell.json @@ -112,7 +112,10 @@ "chipyaml", "webrtc", "pyproject", - "CNET" + "CNET", + "AVSM", + "PAVST", + "WEBRTCR" ], "allowCompoundWords": true, "ignorePaths": [