From e1c50cff5c0d9c462d2bd9f51209964fd575a438 Mon Sep 17 00:00:00 2001 From: Lip Liu Date: Mon, 13 Jul 2026 15:38:16 -0500 Subject: [PATCH 1/2] Modify XPath for test name handling in converter Support retried or repeated test. --- src/results_uploader/mobly_result_converter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/results_uploader/mobly_result_converter.py b/src/results_uploader/mobly_result_converter.py index 0bc5bc8..df5d2cf 100644 --- a/src/results_uploader/mobly_result_converter.py +++ b/src/results_uploader/mobly_result_converter.py @@ -169,7 +169,7 @@ def _find_all_elements( if test_name is not None: xpath += ( f'/{ResultstoreTreeTags.TESTCASE.value}' - f'[@{ResultstoreTreeAttributes.NAME.value}="{test_name}"]' + f'[@{ResultstoreTreeAttributes.RERAN_TEST_NAME.value}="{test_name}"]' ) yield from mobly_root.iterfind(xpath) From 1e3556ee8595d84649672eb43a9ecd0dcf31a881 Mon Sep 17 00:00:00 2001 From: Lip Liu Date: Mon, 13 Jul 2026 15:50:56 -0500 Subject: [PATCH 2/2] Refactor XPath logic in mobly_result_converter.py Refactor XPath construction for test case retrieval to improve readability and maintainability. --- src/results_uploader/mobly_result_converter.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/results_uploader/mobly_result_converter.py b/src/results_uploader/mobly_result_converter.py index df5d2cf..cd07529 100644 --- a/src/results_uploader/mobly_result_converter.py +++ b/src/results_uploader/mobly_result_converter.py @@ -167,12 +167,15 @@ def _find_all_elements( if class_name is not None: xpath += f'[@{ResultstoreTreeAttributes.NAME.value}="{class_name}"]' if test_name is not None: - xpath += ( - f'/{ResultstoreTreeTags.TESTCASE.value}' - f'[@{ResultstoreTreeAttributes.RERAN_TEST_NAME.value}="{test_name}"]' - ) - - yield from mobly_root.iterfind(xpath) + xpath += f'/{ResultstoreTreeTags.TESTCASE.value}' + for element in mobly_root.iterfind(xpath): + if ( + element.get(ResultstoreTreeAttributes.NAME.value) == test_name + or element.get(ResultstoreTreeAttributes.RERAN_TEST_NAME.value) == test_name + ): + yield element + else: + yield from mobly_root.iterfind(xpath) def _create_or_return_properties_element(