testit-python-commons 5.1.2.post580__tar.gz → 5.1.3.post580__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/PKG-INFO +1 -1
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/setup.py +1 -1
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/api_client.py +38 -26
- testit_python_commons-5.1.3.post580/src/testit_python_commons/client/helpers/test_result_matching.py +41 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons.egg-info/PKG-INFO +1 -1
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons.egg-info/SOURCES.txt +1 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/README.md +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/setup.cfg +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/attachments_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/auto_tests_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/configurations_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/parameters_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/project_attributes_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/project_sections_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/project_work_items_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/projects_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/sections_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/test_results_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/test_runs_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/work_items_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api/workflows_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/api_client.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/apis/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/configuration.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/exceptions.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_auto_tests_id_work_items_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_auto_tests_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_auto_tests_put_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_auto_tests_search_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_configurations_search_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_parameters_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_parameters_search_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_projects_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_projects_project_id_attributes_put_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_projects_project_id_attributes_search_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_projects_project_id_work_items_search_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_projects_search_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_sections_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_test_results_id_put_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_test_results_search_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_test_runs_id_reruns_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_test_runs_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_test_runs_put_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/adapters_work_items_post_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/assign_attachment_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/assign_auto_test_case_id_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/assign_iteration_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/attachment_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/attachment_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/attachment_put_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/attachment_put_model_auto_test_step_results_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/attachment_update_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_case_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_create_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_filter_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_id_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_model_last_test_result_configuration.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_model_last_test_result_status.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_result_reason_short.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_results_for_test_run_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_search_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_search_api_model_filter.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_search_api_model_includes.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_search_include_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_step.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_step_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_step_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_step_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_step_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_step_result_update_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_update_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/auto_test_work_item_identifier_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/available_test_result_outcome.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/configuration_filter_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/configuration_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/configuration_short_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/create_empty_test_run_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/create_link_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/create_parameter_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/create_project_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/create_step_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/create_work_item_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/custom_attribute_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/custom_attribute_get_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/custom_attribute_option_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/custom_attribute_option_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/custom_attribute_put_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/custom_attribute_type.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/custom_attribute_types_enum.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/date_time_range_selector_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/deletion_state.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/detailed_project_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/detailed_project_api_result_workflow.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/failure_category_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/guid_extraction_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/image_resize_type.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/int32_range_selector_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/int64_range_selector_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/iteration_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/iteration_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/label_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/label_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/label_short_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/link_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/link_create_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/link_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/link_post_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/link_put_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/link_short_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/link_type.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/link_update_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/manual_rerun_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/manual_rerun_select_test_results_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/manual_rerun_select_test_results_api_model_extraction_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/manual_rerun_select_test_results_api_model_filter.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/manual_rerun_test_result_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/manual_rerun_test_result_api_model_test_result_ids.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/operation.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/parameter_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/parameter_iteration_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/parameter_short_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/parameter_short_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/parameters_filter_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/problem_details.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/project_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/project_attributes_filter_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/project_type_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/projects_filter_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/projects_filter_model_autotests_count.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/projects_filter_model_checklists_count.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/projects_filter_model_created_date.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/projects_filter_model_shared_steps_count.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/projects_filter_model_test_cases_count.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/section_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/section_post_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/section_shared_step.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/section_with_steps_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/shared_step_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/shared_step_result_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/step_comment_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/step_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/step_post_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/step_result_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/tag_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_result_link_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_result_outcome.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_result_response.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_result_short_response.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_result_short_response_status.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_result_step_comment_update_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_result_update_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_results_filter_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_results_filter_api_model_duration.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_run_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_run_api_result_status.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_run_state.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_status_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_status_api_type.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_status_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/test_status_type.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/update_empty_test_run_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/update_link_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/validation_problem_details.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_entity_type_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_filter_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_filter_api_model_duration.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_id_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_parameter_key_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_parameter_key_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_priority_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_priority_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_select_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_select_api_model_filter.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_short_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_source_type_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_state_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_states.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/work_item_type_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/workflow_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model/workflow_status_api_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/model_utils.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/models/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_adapters/rest.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/api/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/api/completion_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/api/health_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/api/system_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/api/test_results_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/api/workers_api.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/api_client.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/apis/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/configuration.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/exceptions.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/completion_response.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/health_status_response.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/register_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/register_response.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/set_worker_status_request.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/set_worker_status_response.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/shutdown_response.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/test_result_cut_api_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model/test_result_save_response.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/model_utils.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/models/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/api_client_syncstorage/rest.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/app_properties.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/client_configuration.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/converter.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/helpers/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/helpers/bulk_autotest_helper.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/helpers/threads_manager.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/models/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/models/threads_for_create_and_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/client/models/threads_for_update_and_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/configurations/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/configurations/properties_names.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/decorators.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/dynamic_methods.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/adapter_mode.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/fixture.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/link.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/link_type.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/outcome_type.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/status_type.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/step_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/test_result.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/models/test_result_with_all_fixture_step_results_model.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/adapter_manager.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/adapter_manager_configuration.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/fixture_manager.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/fixture_storage.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/logger.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/plugin_manager.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/retry.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/step_manager.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/step_result_storage.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/sync_storage/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/sync_storage/sync_storage_runner.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/test_run_metadata.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/services/utils.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/step.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/utils/__init__.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons/utils/html_escape_utils.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons.egg-info/dependency_links.txt +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons.egg-info/requires.txt +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/src/testit_python_commons.egg-info/top_level.txt +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/tests/test_app_properties.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/tests/test_dynamic_methods.py +0 -0
- {testit_python_commons-5.1.2.post580 → testit_python_commons-5.1.3.post580}/tests/test_html_escape_utils.py +0 -0
|
@@ -30,6 +30,7 @@ from api_client_adapters.models import (
|
|
|
30
30
|
from testit_python_commons.client.client_configuration import ClientConfiguration
|
|
31
31
|
from testit_python_commons.client.converter import Converter
|
|
32
32
|
from testit_python_commons.client.helpers.bulk_autotest_helper import BulkAutotestHelper
|
|
33
|
+
from testit_python_commons.client.helpers.test_result_matching import pick_best_in_progress_id
|
|
33
34
|
from typing import List
|
|
34
35
|
|
|
35
36
|
from testit_python_commons.models.link import Link
|
|
@@ -62,6 +63,7 @@ class ApiClientWorker:
|
|
|
62
63
|
self.__workflows_api = WorkflowsApi(api_client=api_client)
|
|
63
64
|
self.__config = config
|
|
64
65
|
self.__status_codes = self.__get_status_codes()
|
|
66
|
+
self.__claimed_in_progress_ids = set()
|
|
65
67
|
|
|
66
68
|
@staticmethod
|
|
67
69
|
@adapter_logger
|
|
@@ -535,37 +537,38 @@ class ApiClientWorker:
|
|
|
535
537
|
logging.debug(f'Autotest was linked with workItem "{work_item_id}" by global id "{autotest_global_id}')
|
|
536
538
|
|
|
537
539
|
@adapter_logger
|
|
538
|
-
def find_in_progress_test_result_id(self, external_id: str):
|
|
540
|
+
def find_in_progress_test_result_id(self, external_id: str, parameters=None):
|
|
539
541
|
if not external_id:
|
|
540
542
|
return None
|
|
541
543
|
|
|
542
|
-
|
|
544
|
+
candidates = []
|
|
543
545
|
for item in self.__get_test_results():
|
|
544
546
|
if item is None:
|
|
545
547
|
continue
|
|
546
|
-
if getattr(item, "autotest_external_id", None)
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
if not matches:
|
|
550
|
-
return None
|
|
551
|
-
|
|
552
|
-
orphan_id = None
|
|
553
|
-
for item in matches:
|
|
548
|
+
if getattr(item, "autotest_external_id", None) != external_id:
|
|
549
|
+
continue
|
|
554
550
|
result_id = getattr(item, "id", None)
|
|
555
551
|
if result_id is None:
|
|
556
552
|
continue
|
|
557
553
|
result_id_str = str(result_id)
|
|
558
|
-
if self.
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
554
|
+
if result_id_str in self.__claimed_in_progress_ids:
|
|
555
|
+
continue
|
|
556
|
+
meta = self.__get_test_result_v2_meta(result_id_str)
|
|
557
|
+
candidates.append({
|
|
558
|
+
"id": result_id_str,
|
|
559
|
+
"has_test_point": self.__is_valid_test_point_id(meta.get("testPointId")),
|
|
560
|
+
"parameters": meta.get("parameters") or {},
|
|
561
|
+
})
|
|
562
|
+
|
|
563
|
+
chosen = pick_best_in_progress_id(candidates, parameters)
|
|
564
|
+
if chosen:
|
|
565
|
+
self.__claimed_in_progress_ids.add(chosen)
|
|
566
|
+
return chosen
|
|
567
|
+
|
|
568
|
+
def __get_test_result_v2_meta(self, test_result_id: str) -> dict:
|
|
569
|
+
"""Hack: adapters OpenAPI omits testPointId/parameters — read GET /api/v2/testResults/{id}."""
|
|
566
570
|
import json
|
|
567
571
|
import ssl
|
|
568
|
-
import urllib.error
|
|
569
572
|
import urllib.request
|
|
570
573
|
|
|
571
574
|
base = (self.__config.get_url() or "").rstrip("/")
|
|
@@ -583,15 +586,21 @@ class ApiClientWorker:
|
|
|
583
586
|
if not self.__config.get_cert_validation():
|
|
584
587
|
context = ssl._create_unverified_context()
|
|
585
588
|
with urllib.request.urlopen(request, timeout=10, context=context) as response:
|
|
586
|
-
|
|
587
|
-
test_point_id = payload.get("testPointId")
|
|
588
|
-
if test_point_id is None:
|
|
589
|
-
return False
|
|
590
|
-
value = str(test_point_id)
|
|
591
|
-
return bool(value) and value != "00000000-0000-0000-0000-000000000000"
|
|
589
|
+
return json.loads(response.read().decode("utf-8")) or {}
|
|
592
590
|
except Exception as exc:
|
|
593
591
|
logging.debug("v2 getTestResult %s failed: %s", test_result_id, exc)
|
|
592
|
+
return {}
|
|
593
|
+
|
|
594
|
+
@staticmethod
|
|
595
|
+
def __is_valid_test_point_id(test_point_id) -> bool:
|
|
596
|
+
if test_point_id is None:
|
|
594
597
|
return False
|
|
598
|
+
value = str(test_point_id)
|
|
599
|
+
return bool(value) and value != "00000000-0000-0000-0000-000000000000"
|
|
600
|
+
|
|
601
|
+
def __has_valid_test_point_id_v2(self, test_result_id: str) -> bool:
|
|
602
|
+
meta = self.__get_test_result_v2_meta(test_result_id)
|
|
603
|
+
return self.__is_valid_test_point_id(meta.get("testPointId"))
|
|
595
604
|
|
|
596
605
|
@adapter_logger
|
|
597
606
|
@retry
|
|
@@ -624,7 +633,10 @@ class ApiClientWorker:
|
|
|
624
633
|
@adapter_logger
|
|
625
634
|
@retry
|
|
626
635
|
def __load_test_result(self, test_result: TestResult) -> str:
|
|
627
|
-
existing_id = self.find_in_progress_test_result_id(
|
|
636
|
+
existing_id = self.find_in_progress_test_result_id(
|
|
637
|
+
test_result.get_external_id(),
|
|
638
|
+
test_result.get_parameters(),
|
|
639
|
+
)
|
|
628
640
|
if existing_id:
|
|
629
641
|
return self.__update_existing_test_result(existing_id, test_result)
|
|
630
642
|
|
testit_python_commons-5.1.3.post580/src/testit_python_commons/client/helpers/test_result_matching.py
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""Match InProgress test results by parameters (parametrized mode 0)."""
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def normalize_parameters(parameters) -> dict:
|
|
5
|
+
if not parameters:
|
|
6
|
+
return {}
|
|
7
|
+
if isinstance(parameters, dict):
|
|
8
|
+
return {str(k): "" if v is None else str(v) for k, v in parameters.items()}
|
|
9
|
+
return {}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def parameters_empty(parameters) -> bool:
|
|
13
|
+
return not normalize_parameters(parameters)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def pick_best_in_progress_id(candidates: list, incoming_parameters=None):
|
|
17
|
+
"""
|
|
18
|
+
candidates: [{id: str, has_test_point: bool, parameters: dict}, ...]
|
|
19
|
+
Prefer: exact param match > empty TMS params (WI without params) > others skipped if incompatible.
|
|
20
|
+
Among equal match quality: prefer valid testPointId.
|
|
21
|
+
"""
|
|
22
|
+
incoming = normalize_parameters(incoming_parameters)
|
|
23
|
+
ranked = []
|
|
24
|
+
|
|
25
|
+
for candidate in candidates:
|
|
26
|
+
if not candidate or not candidate.get("id"):
|
|
27
|
+
continue
|
|
28
|
+
cand_params = normalize_parameters(candidate.get("parameters"))
|
|
29
|
+
if cand_params == incoming:
|
|
30
|
+
match_score = 0
|
|
31
|
+
elif parameters_empty(cand_params):
|
|
32
|
+
match_score = 1
|
|
33
|
+
else:
|
|
34
|
+
continue
|
|
35
|
+
tp_score = 0 if candidate.get("has_test_point") else 1
|
|
36
|
+
ranked.append(((match_score, tp_score), candidate["id"]))
|
|
37
|
+
|
|
38
|
+
if not ranked:
|
|
39
|
+
return None
|
|
40
|
+
ranked.sort(key=lambda item: item[0])
|
|
41
|
+
return ranked[0][1]
|
|
@@ -223,6 +223,7 @@ src/testit_python_commons/client/client_configuration.py
|
|
|
223
223
|
src/testit_python_commons/client/converter.py
|
|
224
224
|
src/testit_python_commons/client/helpers/__init__.py
|
|
225
225
|
src/testit_python_commons/client/helpers/bulk_autotest_helper.py
|
|
226
|
+
src/testit_python_commons/client/helpers/test_result_matching.py
|
|
226
227
|
src/testit_python_commons/client/helpers/threads_manager.py
|
|
227
228
|
src/testit_python_commons/client/models/__init__.py
|
|
228
229
|
src/testit_python_commons/client/models/threads_for_create_and_result.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|