codemie-test-harness 0.1.129__py3-none-any.whl → 0.1.131__py3-none-any.whl

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.

Potentially problematic release.


This version of codemie-test-harness might be problematic. Click here for more details.

Files changed (321) hide show
  1. codemie_test_harness/.env +5 -0
  2. codemie_test_harness/cli/runner.py +25 -16
  3. codemie_test_harness/pytest.ini +6 -0
  4. {tests → codemie_test_harness/tests}/__init__.py +1 -1
  5. {tests → codemie_test_harness/tests}/assistant/datasource/test_code_datasource.py +2 -2
  6. {tests → codemie_test_harness/tests}/assistant/datasource/test_confluence_datasource.py +2 -2
  7. {tests → codemie_test_harness/tests}/assistant/datasource/test_file_indexing.py +6 -6
  8. {tests → codemie_test_harness/tests}/assistant/datasource/test_google_datasource.py +2 -2
  9. {tests → codemie_test_harness/tests}/assistant/datasource/test_jira_datasource.py +5 -2
  10. {tests → codemie_test_harness/tests}/assistant/default_integrations/test_default_integrations_for_tool.py +9 -6
  11. {tests → codemie_test_harness/tests}/assistant/default_integrations/test_default_integrations_for_tool_kit.py +8 -6
  12. {tests → codemie_test_harness/tests}/assistant/default_integrations/test_default_integrations_for_tool_with_datasource.py +6 -6
  13. {tests → codemie_test_harness/tests}/assistant/test_assistants.py +6 -6
  14. {tests → codemie_test_harness/tests}/assistant/tools/ado/test_assistant_for_ado_test_plan_tools.py +6 -6
  15. {tests → codemie_test_harness/tests}/assistant/tools/ado/test_assistant_for_ado_wiki_tools.py +4 -4
  16. {tests → codemie_test_harness/tests}/assistant/tools/ado/test_assistant_for_ado_work_item_tools.py +6 -6
  17. {tests → codemie_test_harness/tests}/assistant/tools/cloud/test_cloud_tools.py +2 -2
  18. {tests → codemie_test_harness/tests}/assistant/tools/codebase/test_codebase_tools.py +2 -2
  19. {tests → codemie_test_harness/tests}/assistant/tools/datamanagement/test_assistant_with_data_management_tools.py +3 -3
  20. {tests → codemie_test_harness/tests}/assistant/tools/filemanagement/test_assistant_with_file_management_tools.py +3 -3
  21. {tests → codemie_test_harness/tests}/assistant/tools/git/test_assistant_with_git_tools.py +2 -2
  22. {tests → codemie_test_harness/tests}/assistant/tools/mcp/test_cli_mcp_server.py +4 -4
  23. {tests → codemie_test_harness/tests}/assistant/tools/mcp/test_mcp_servers.py +1 -1
  24. {tests → codemie_test_harness/tests}/assistant/tools/notification/test_assistant_notification_tools.py +3 -3
  25. {tests → codemie_test_harness/tests}/assistant/tools/openapi/test_assistant_with_open_api_tools.py +2 -2
  26. {tests → codemie_test_harness/tests}/assistant/tools/plugin/test_assistant_with_development_plugin.py +4 -4
  27. {tests → codemie_test_harness/tests}/assistant/tools/plugin/test_assistant_with_plugin_and_mcp_servers.py +3 -3
  28. {tests → codemie_test_harness/tests}/assistant/tools/project_management/test_assistant_pm_tools.py +8 -6
  29. {tests → codemie_test_harness/tests}/assistant/tools/research/test_assistant_research_tools.py +3 -3
  30. {tests → codemie_test_harness/tests}/assistant/tools/servicenow/test_servicenow_tools.py +5 -2
  31. {tests → codemie_test_harness/tests}/assistant/tools/vcs/test_assistant_with_vcs_tools.py +3 -3
  32. {tests → codemie_test_harness/tests}/conftest.py +4 -0
  33. {tests → codemie_test_harness/tests}/e2e/test_e2e.py +2 -2
  34. {tests → codemie_test_harness/tests}/integrations/project/test_default_integrations.py +16 -9
  35. {tests → codemie_test_harness/tests}/integrations/project/test_project_integrations.py +6 -3
  36. {tests → codemie_test_harness/tests}/integrations/user/test_default_integrations.py +16 -9
  37. {tests → codemie_test_harness/tests}/integrations/user/test_user_integrations.py +3 -3
  38. {tests → codemie_test_harness/tests}/llm/assistants/test_llm.py +4 -4
  39. codemie_test_harness/tests/providers/test_providers_endpoints.py +239 -0
  40. {tests → codemie_test_harness/tests}/search/test_search_assistant.py +3 -3
  41. {tests → codemie_test_harness/tests}/search/test_search_datasource.py +3 -3
  42. {tests → codemie_test_harness/tests}/search/test_search_integration.py +2 -2
  43. {tests → codemie_test_harness/tests}/search/test_search_workflow.py +3 -3
  44. {tests → codemie_test_harness/tests}/service/test_assistant_service.py +2 -2
  45. {tests → codemie_test_harness/tests}/service/test_datasource_service.py +2 -2
  46. {tests → codemie_test_harness/tests}/service/test_integration_service.py +2 -2
  47. {tests → codemie_test_harness/tests}/service/test_task_service.py +2 -2
  48. {tests → codemie_test_harness/tests}/service/test_workflow_execution_service.py +2 -2
  49. {tests → codemie_test_harness/tests}/service/test_workflow_service.py +2 -2
  50. {tests → codemie_test_harness/tests}/test_data/ado_test_plan_tools_test_data.py +1 -1
  51. {tests → codemie_test_harness/tests}/test_data/ado_wiki_tools_test_data.py +1 -1
  52. {tests → codemie_test_harness/tests}/test_data/ado_work_item_tools_test_data.py +1 -1
  53. {tests → codemie_test_harness/tests}/test_data/cloud_tools_test_data.py +2 -2
  54. {tests → codemie_test_harness/tests}/test_data/codebase_tools_test_data.py +2 -2
  55. {tests → codemie_test_harness/tests}/test_data/data_management_tools_test_data.py +1 -1
  56. {tests → codemie_test_harness/tests}/test_data/direct_tools/ado_test_plan_tools_test_data.py +1 -1
  57. {tests → codemie_test_harness/tests}/test_data/direct_tools/ado_wiki_tools_test_data.py +1 -1
  58. {tests → codemie_test_harness/tests}/test_data/direct_tools/ado_work_item_tools_test_data.py +1 -1
  59. {tests → codemie_test_harness/tests}/test_data/direct_tools/cloud_tools_test_data.py +2 -2
  60. {tests → codemie_test_harness/tests}/test_data/direct_tools/codebase_tools_test_data.py +1 -1
  61. {tests → codemie_test_harness/tests}/test_data/direct_tools/data_management_tools_test_data.py +2 -2
  62. {tests → codemie_test_harness/tests}/test_data/direct_tools/direct_tools_test_data.py +2 -2
  63. {tests → codemie_test_harness/tests}/test_data/direct_tools/file_management_tools_test_data.py +1 -1
  64. {tests → codemie_test_harness/tests}/test_data/direct_tools/notification_tools_test_data.py +2 -2
  65. {tests → codemie_test_harness/tests}/test_data/direct_tools/open_api_tools_test_data.py +1 -1
  66. {tests → codemie_test_harness/tests}/test_data/direct_tools/project_management_tools_test_data.py +2 -2
  67. {tests → codemie_test_harness/tests}/test_data/direct_tools/research_tools_test_data.py +1 -1
  68. {tests → codemie_test_harness/tests}/test_data/direct_tools/vcs_tools_test_data.py +1 -1
  69. {tests → codemie_test_harness/tests}/test_data/file_management_tools_test_data.py +1 -1
  70. codemie_test_harness/tests/test_data/files/provider_payload.json +382 -0
  71. {tests → codemie_test_harness/tests}/test_data/git_tools_test_data.py +1 -1
  72. {tests → codemie_test_harness/tests}/test_data/integrations_test_data.py +2 -2
  73. {tests → codemie_test_harness/tests}/test_data/llm_test_data.py +1 -1
  74. {tests → codemie_test_harness/tests}/test_data/mcp_server_test_data.py +2 -2
  75. {tests → codemie_test_harness/tests}/test_data/notification_tools_test_data.py +1 -1
  76. {tests → codemie_test_harness/tests}/test_data/open_api_tools_test_data.py +1 -1
  77. {tests → codemie_test_harness/tests}/test_data/plugin_tools_test_data.py +2 -2
  78. {tests → codemie_test_harness/tests}/test_data/project_management_test_data.py +3 -3
  79. {tests → codemie_test_harness/tests}/test_data/research_tools_test_data.py +1 -1
  80. {tests → codemie_test_harness/tests}/test_data/vcs_tools_test_data.py +1 -1
  81. {tests → codemie_test_harness/tests}/ui/conftest.py +1 -1
  82. {tests → codemie_test_harness/tests}/ui/pageobject/assistants/assistants_page.py +1 -1
  83. {tests → codemie_test_harness/tests}/ui/pageobject/base_page.py +2 -2
  84. {tests → codemie_test_harness/tests}/ui/pageobject/login_page.py +4 -2
  85. {tests → codemie_test_harness/tests}/ui/pageobject/workflows/base_workflow_form_page.py +2 -2
  86. {tests → codemie_test_harness/tests}/ui/pageobject/workflows/create_workflow_page.py +4 -2
  87. {tests → codemie_test_harness/tests}/ui/pageobject/workflows/edit_workflow_page.py +3 -1
  88. {tests → codemie_test_harness/tests}/ui/pageobject/workflows/workflow_details_page.py +5 -3
  89. {tests → codemie_test_harness/tests}/ui/pageobject/workflows/workflow_executions_page.py +3 -3
  90. {tests → codemie_test_harness/tests}/ui/pageobject/workflows/workflow_template_details.py +1 -1
  91. {tests → codemie_test_harness/tests}/ui/pageobject/workflows/workflow_templates_page.py +4 -2
  92. {tests → codemie_test_harness/tests}/ui/pageobject/workflows/workflows_page.py +8 -3
  93. {tests → codemie_test_harness/tests}/ui/test_create_workflow.py +7 -3
  94. {tests → codemie_test_harness/tests}/ui/test_edit_workflow.py +8 -4
  95. {tests → codemie_test_harness/tests}/ui/test_workflow_details.py +4 -4
  96. {tests → codemie_test_harness/tests}/ui/test_workflow_executions_page.py +3 -3
  97. {tests → codemie_test_harness/tests}/ui/test_workflow_templates.py +12 -6
  98. {tests → codemie_test_harness/tests}/ui/test_workflows.py +3 -1
  99. {tests → codemie_test_harness/tests}/utils/assistant_utils.py +6 -2
  100. {tests → codemie_test_harness/tests}/utils/aws_parameters_store.py +6 -4
  101. {tests → codemie_test_harness/tests}/utils/base_utils.py +2 -2
  102. {tests → codemie_test_harness/tests}/utils/constants.py +1 -1
  103. {tests → codemie_test_harness/tests}/utils/datasource_utils.py +6 -2
  104. codemie_test_harness/tests/utils/http_utils.py +141 -0
  105. {tests → codemie_test_harness/tests}/utils/integration_utils.py +6 -2
  106. {tests → codemie_test_harness/tests}/utils/notification_utils.py +1 -1
  107. codemie_test_harness/tests/utils/provider_utils.py +178 -0
  108. {tests → codemie_test_harness/tests}/utils/search_utils.py +1 -1
  109. {tests → codemie_test_harness/tests}/utils/similarity_check.py +5 -1
  110. {tests → codemie_test_harness/tests}/utils/workflow_utils.py +4 -4
  111. {tests → codemie_test_harness/tests}/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_test_plan_tools.py +5 -5
  112. {tests → codemie_test_harness/tests}/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_wiki_tools.py +3 -3
  113. {tests → codemie_test_harness/tests}/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_work_item_tools.py +5 -5
  114. {tests → codemie_test_harness/tests}/workflow/assistant_tools/cloud/test_workflow_with_assistant_cloud_tools.py +2 -2
  115. {tests → codemie_test_harness/tests}/workflow/assistant_tools/codebase/test_worfklow_with_assistant_codebase_tools.py +2 -2
  116. {tests → codemie_test_harness/tests}/workflow/assistant_tools/data_management/test_workflow_with_assistant_with_data_management_tools.py +3 -3
  117. {tests → codemie_test_harness/tests}/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool.py +9 -6
  118. {tests → codemie_test_harness/tests}/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +8 -6
  119. {tests → codemie_test_harness/tests}/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +6 -6
  120. {tests → codemie_test_harness/tests}/workflow/assistant_tools/file_management/test_workflow_with_assistant_with_file_management_tools.py +3 -3
  121. {tests → codemie_test_harness/tests}/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py +2 -2
  122. {tests → codemie_test_harness/tests}/workflow/assistant_tools/mcp/test_workflow_with_assistant_with_mcp_server.py +2 -2
  123. {tests → codemie_test_harness/tests}/workflow/assistant_tools/notification/test_workflow_with_assistant_notification_tools.py +2 -2
  124. {tests → codemie_test_harness/tests}/workflow/assistant_tools/open_api/test_workflow_with_assistant_with_open_api_tools.py +4 -2
  125. {tests → codemie_test_harness/tests}/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_development_plugin.py +4 -4
  126. {tests → codemie_test_harness/tests}/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_plugin_and_mcp_servers.py +3 -3
  127. {tests → codemie_test_harness/tests}/workflow/assistant_tools/project_management/test_workflow_with_assistant_pm_tools.py +5 -3
  128. {tests → codemie_test_harness/tests}/workflow/assistant_tools/research/test_workflow_with_assistant_research_tools.py +3 -3
  129. {tests → codemie_test_harness/tests}/workflow/assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +5 -2
  130. {tests → codemie_test_harness/tests}/workflow/assistant_tools/vcs/workflow_with_assistant_vcs_tools.py +3 -3
  131. {tests → codemie_test_harness/tests}/workflow/config_validation/test_config_validation.py +3 -3
  132. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool.py +7 -7
  133. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool_kit.py +9 -7
  134. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_ado_test_plan_tools.py +2 -2
  135. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_ado_wiki_tools.py +4 -2
  136. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_ado_work_item_tools.py +2 -2
  137. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_cloud_tools.py +5 -3
  138. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_codebase_tools.py +4 -4
  139. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_data_management_tools.py +3 -3
  140. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_file_management_tools.py +2 -2
  141. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_notification_tools.py +4 -4
  142. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_open_api_tools.py +2 -2
  143. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_plugin_tools.py +3 -3
  144. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_project_management_tools.py +3 -3
  145. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_research_tools.py +2 -2
  146. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_servicenow_tools.py +3 -3
  147. {tests → codemie_test_harness/tests}/workflow/direct_tools_calling/test_workflow_with_vcs_tools.py +3 -3
  148. {tests → codemie_test_harness/tests}/workflow/test_workflows.py +3 -3
  149. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_test_plan_tools.py +5 -5
  150. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_wiki_tools.py +3 -3
  151. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_work_item_tools.py +5 -5
  152. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/cloud/test_workflow_with_cloud_tools.py +3 -3
  153. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/codebase/test_workflow_with_codebase_tools.py +4 -4
  154. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/data_management/test_workflow_with_data_management_tools.py +4 -4
  155. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool.py +10 -7
  156. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +9 -7
  157. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +7 -7
  158. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/file_management/test_workflow_with_file_management_tools.py +3 -3
  159. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py +2 -2
  160. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/mcp/test_workflow_with_mcp_server.py +3 -3
  161. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/notification/test_workflow_with_notification_tools.py +3 -3
  162. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/open_api/test_workflow_with_open_api_tools.py +4 -2
  163. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/plugin/test_workflow_with_development_plugin.py +4 -4
  164. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/plugin/test_workflow_with_plugin_and_mcp_servers.py +4 -4
  165. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/project_management/test_workflow_with_project_management_tools.py +5 -3
  166. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/research/test_workflow_with_research_tools.py +6 -3
  167. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +6 -3
  168. codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/__init__.py +0 -0
  169. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/vcs/test_workflow_with_vcs_tools.py +3 -3
  170. {codemie_test_harness-0.1.129.dist-info → codemie_test_harness-0.1.131.dist-info}/METADATA +2 -2
  171. codemie_test_harness-0.1.131.dist-info/RECORD +326 -0
  172. codemie_test_harness-0.1.129.dist-info/RECORD +0 -320
  173. tests/utils/http_utils.py +0 -53
  174. {tests → codemie_test_harness/tests}/assistant/__init__.py +0 -0
  175. {tests → codemie_test_harness/tests}/assistant/datasource/__init__.py +0 -0
  176. {tests → codemie_test_harness/tests}/assistant/default_integrations/__init__.py +0 -0
  177. {tests → codemie_test_harness/tests}/assistant/tools/__init__.py +0 -0
  178. {tests → codemie_test_harness/tests}/assistant/tools/ado/__init__.py +0 -0
  179. {tests → codemie_test_harness/tests}/assistant/tools/cloud/__init__.py +0 -0
  180. {tests → codemie_test_harness/tests}/assistant/tools/codebase/__init__.py +0 -0
  181. {tests → codemie_test_harness/tests}/assistant/tools/datamanagement/__init__.py +0 -0
  182. {tests → codemie_test_harness/tests}/assistant/tools/filemanagement/__init__.py +0 -0
  183. {tests → codemie_test_harness/tests}/assistant/tools/git/__init__.py +0 -0
  184. {tests → codemie_test_harness/tests}/assistant/tools/mcp/__init__.py +0 -0
  185. {tests → codemie_test_harness/tests}/assistant/tools/notification/__init__.py +0 -0
  186. {tests → codemie_test_harness/tests}/assistant/tools/openapi/__init__.py +0 -0
  187. {tests → codemie_test_harness/tests}/assistant/tools/plugin/__init__.py +0 -0
  188. {tests → codemie_test_harness/tests}/assistant/tools/project_management/__init__.py +0 -0
  189. {tests → codemie_test_harness/tests}/assistant/tools/research/__init__.py +0 -0
  190. {tests → codemie_test_harness/tests}/assistant/tools/servicenow/__init__.py +0 -0
  191. {tests → codemie_test_harness/tests}/assistant/tools/vcs/__init__.py +0 -0
  192. {tests → codemie_test_harness/tests}/e2e/__init__.py +0 -0
  193. {tests → codemie_test_harness/tests}/enums/__init__.py +0 -0
  194. {tests → codemie_test_harness/tests}/enums/integrations.py +0 -0
  195. {tests → codemie_test_harness/tests}/enums/model_types.py +0 -0
  196. {tests → codemie_test_harness/tests}/enums/tools.py +0 -0
  197. {tests → codemie_test_harness/tests}/integrations/__init__.py +0 -0
  198. {tests → codemie_test_harness/tests}/integrations/project/__init__.py +0 -0
  199. {tests → codemie_test_harness/tests}/integrations/user/__init__.py +0 -0
  200. {tests → codemie_test_harness/tests}/llm/__init__.py +0 -0
  201. {tests → codemie_test_harness/tests}/llm/assistants/__init__.py +0 -0
  202. {tests/service → codemie_test_harness/tests/providers}/__init__.py +0 -0
  203. {tests → codemie_test_harness/tests}/search/__init__.py +0 -0
  204. {tests/test_data → codemie_test_harness/tests/service}/__init__.py +0 -0
  205. {tests → codemie_test_harness/tests}/service/test_llm_service.py +0 -0
  206. {tests → codemie_test_harness/tests}/service/test_user_service.py +0 -0
  207. {tests/test_data/direct_tools → codemie_test_harness/tests/test_data}/__init__.py +0 -0
  208. {tests/ui → codemie_test_harness/tests/test_data/direct_tools}/__init__.py +0 -0
  209. {tests → codemie_test_harness/tests}/test_data/direct_tools/servicenow_tools_test_data.py +0 -0
  210. {tests → codemie_test_harness/tests}/test_data/file_test_data.py +0 -0
  211. {tests → codemie_test_harness/tests}/test_data/files/large-files/large_file.txt +0 -0
  212. {tests → codemie_test_harness/tests}/test_data/files/test.csv +0 -0
  213. {tests → codemie_test_harness/tests}/test_data/files/test.docx +0 -0
  214. {tests → codemie_test_harness/tests}/test_data/files/test.gif +0 -0
  215. {tests → codemie_test_harness/tests}/test_data/files/test.ini +0 -0
  216. {tests → codemie_test_harness/tests}/test_data/files/test.jpeg +0 -0
  217. {tests → codemie_test_harness/tests}/test_data/files/test.jpg +0 -0
  218. {tests → codemie_test_harness/tests}/test_data/files/test.json +0 -0
  219. {tests → codemie_test_harness/tests}/test_data/files/test.pdf +0 -0
  220. {tests → codemie_test_harness/tests}/test_data/files/test.png +0 -0
  221. {tests → codemie_test_harness/tests}/test_data/files/test.pptx +0 -0
  222. {tests → codemie_test_harness/tests}/test_data/files/test.txt +0 -0
  223. {tests → codemie_test_harness/tests}/test_data/files/test.vtt +0 -0
  224. {tests → codemie_test_harness/tests}/test_data/files/test.xlsx +0 -0
  225. {tests → codemie_test_harness/tests}/test_data/files/test.xml +0 -0
  226. {tests → codemie_test_harness/tests}/test_data/files/test.yaml +0 -0
  227. {tests → codemie_test_harness/tests}/test_data/google_datasource_test_data.py +0 -0
  228. {tests → codemie_test_harness/tests}/test_data/index_test_data.py +0 -0
  229. {tests → codemie_test_harness/tests}/test_data/openapi.json +0 -0
  230. {tests → codemie_test_harness/tests}/test_data/output_schema_test_data.py +0 -0
  231. {tests → codemie_test_harness/tests}/test_data/pm_tools_test_data.py +0 -0
  232. {tests → codemie_test_harness/tests}/test_data/servicenow_tools_test_data.py +0 -0
  233. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/invalid_assistant_id.yaml +0 -0
  234. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/invalid_assistant_in_state.yaml +0 -0
  235. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/invalid_data_source.yaml +0 -0
  236. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/invalid_state.yaml +0 -0
  237. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/invalid_tool.yaml +0 -0
  238. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/invalid_yaml.yaml +0 -0
  239. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/invalid_yaml_format.yaml +0 -0
  240. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_assistant_id.yaml +0 -0
  241. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_assistant_tools_name.yaml +0 -0
  242. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_retry_backoff_factor.yaml +0 -0
  243. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_retry_initial_interval.yaml +0 -0
  244. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_retry_max_attempts.yaml +0 -0
  245. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_retry_max_interval.yaml +0 -0
  246. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states.yaml +0 -0
  247. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_id.yaml +0 -0
  248. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_next.yaml +0 -0
  249. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_next_condition_expression.yaml +0 -0
  250. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_next_condition_otherwise.yaml +0 -0
  251. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_next_condition_then.yaml +0 -0
  252. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_next_switch_cases.yaml +0 -0
  253. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_next_switch_cases_condition.yaml +0 -0
  254. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_next_switch_cases_state_id.yaml +0 -0
  255. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_next_switch_default.yaml +0 -0
  256. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_retry_backoff_factor.yaml +0 -0
  257. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_retry_initial_interval.yaml +0 -0
  258. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_retry_max_attempts.yaml +0 -0
  259. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_states_retry_max_interval.yaml +0 -0
  260. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_system_prompt.yaml +0 -0
  261. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_tools_id.yaml +0 -0
  262. {tests → codemie_test_harness/tests}/test_data/workflow/invalid_config/missing_required_tools_name.yaml +0 -0
  263. {tests → codemie_test_harness/tests}/test_data/workflow_validation_messages.py +0 -0
  264. {tests/ui/pageobject → codemie_test_harness/tests/ui}/__init__.py +0 -0
  265. {tests/ui/pageobject/assistants → codemie_test_harness/tests/ui/pageobject}/__init__.py +0 -0
  266. {tests/workflow → codemie_test_harness/tests/ui/pageobject/assistants}/__init__.py +0 -0
  267. {tests → codemie_test_harness/tests}/ui/pageobject/components/__init__.py +0 -0
  268. {tests → codemie_test_harness/tests}/ui/pageobject/components/execution_history_row.py +0 -0
  269. {tests → codemie_test_harness/tests}/ui/pageobject/components/header.py +0 -0
  270. {tests → codemie_test_harness/tests}/ui/pageobject/components/pop_up.py +0 -0
  271. {tests → codemie_test_harness/tests}/ui/pageobject/components/workflow_card.py +0 -0
  272. {tests → codemie_test_harness/tests}/ui/pageobject/components/workflow_execution_history_item.py +0 -0
  273. {tests → codemie_test_harness/tests}/ui/pageobject/components/workflow_execution_state.py +0 -0
  274. {tests → codemie_test_harness/tests}/ui/pageobject/components/workflow_sidebar.py +0 -0
  275. {tests → codemie_test_harness/tests}/ui/pageobject/components/workflow_state_card.py +0 -0
  276. {tests → codemie_test_harness/tests}/ui/pageobject/workflows/__init__.py +0 -0
  277. {tests → codemie_test_harness/tests}/utils/__init__.py +0 -0
  278. {tests → codemie_test_harness/tests}/utils/client_factory.py +0 -0
  279. {tests → codemie_test_harness/tests}/utils/file_utils.py +0 -0
  280. {tests → codemie_test_harness/tests}/utils/gitbud_utils.py +0 -0
  281. {tests → codemie_test_harness/tests}/utils/json_utils.py +0 -0
  282. {tests → codemie_test_harness/tests}/utils/logger_util.py +0 -0
  283. {tests → codemie_test_harness/tests}/utils/pytest_utils.py +0 -0
  284. {tests → codemie_test_harness/tests}/utils/yaml_utils.py +0 -0
  285. {tests/workflow/assistant_tools → codemie_test_harness/tests/workflow}/__init__.py +0 -0
  286. {tests/workflow/assistant_tools/ado → codemie_test_harness/tests/workflow/assistant_tools}/__init__.py +0 -0
  287. {tests/workflow/assistant_tools/cloud → codemie_test_harness/tests/workflow/assistant_tools/ado}/__init__.py +0 -0
  288. {tests/workflow/assistant_tools/codebase → codemie_test_harness/tests/workflow/assistant_tools/cloud}/__init__.py +0 -0
  289. {tests/workflow/assistant_tools/data_management → codemie_test_harness/tests/workflow/assistant_tools/codebase}/__init__.py +0 -0
  290. {tests/workflow/assistant_tools/default_integrations → codemie_test_harness/tests/workflow/assistant_tools/data_management}/__init__.py +0 -0
  291. {tests/workflow/assistant_tools/git → codemie_test_harness/tests/workflow/assistant_tools/default_integrations}/__init__.py +0 -0
  292. {tests → codemie_test_harness/tests}/workflow/assistant_tools/file_management/__init__.py +0 -0
  293. {tests/workflow/assistant_tools/mcp → codemie_test_harness/tests/workflow/assistant_tools/git}/__init__.py +0 -0
  294. {tests/workflow/assistant_tools/notification → codemie_test_harness/tests/workflow/assistant_tools/mcp}/__init__.py +0 -0
  295. {tests/workflow/assistant_tools/plugin → codemie_test_harness/tests/workflow/assistant_tools/notification}/__init__.py +0 -0
  296. {tests → codemie_test_harness/tests}/workflow/assistant_tools/open_api/__init__.py +0 -0
  297. {tests/workflow/assistant_tools/project_management → codemie_test_harness/tests/workflow/assistant_tools/plugin}/__init__.py +0 -0
  298. {tests/workflow/assistant_tools/research → codemie_test_harness/tests/workflow/assistant_tools/project_management}/__init__.py +0 -0
  299. {tests/workflow/assistant_tools/servicenow → codemie_test_harness/tests/workflow/assistant_tools/research}/__init__.py +0 -0
  300. {tests/workflow/assistant_tools/vcs → codemie_test_harness/tests/workflow/assistant_tools/servicenow}/__init__.py +0 -0
  301. {tests/workflow/config_validation → codemie_test_harness/tests/workflow/assistant_tools/vcs}/__init__.py +0 -0
  302. {tests/workflow/direct_tools_calling → codemie_test_harness/tests/workflow/config_validation}/__init__.py +0 -0
  303. {tests/workflow/direct_tools_calling/default_integrations → codemie_test_harness/tests/workflow/direct_tools_calling}/__init__.py +0 -0
  304. {tests/workflow/virtual_assistant_tools → codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations}/__init__.py +0 -0
  305. {tests/workflow/virtual_assistant_tools/ado → codemie_test_harness/tests/workflow/virtual_assistant_tools}/__init__.py +0 -0
  306. {tests/workflow/virtual_assistant_tools/cloud → codemie_test_harness/tests/workflow/virtual_assistant_tools/ado}/__init__.py +0 -0
  307. {tests/workflow/virtual_assistant_tools/default_integrations → codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud}/__init__.py +0 -0
  308. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/codebase/__init__.py +0 -0
  309. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/data_management/__init__.py +0 -0
  310. {tests/workflow/virtual_assistant_tools/git → codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations}/__init__.py +0 -0
  311. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/file_management/__init__.py +0 -0
  312. {tests/workflow/virtual_assistant_tools/mcp → codemie_test_harness/tests/workflow/virtual_assistant_tools/git}/__init__.py +0 -0
  313. {tests/workflow/virtual_assistant_tools/plugin → codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp}/__init__.py +0 -0
  314. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/notification/__init__.py +0 -0
  315. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/open_api/__init__.py +0 -0
  316. {tests/workflow/virtual_assistant_tools/research → codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin}/__init__.py +0 -0
  317. {tests → codemie_test_harness/tests}/workflow/virtual_assistant_tools/project_management/__init__.py +0 -0
  318. {tests/workflow/virtual_assistant_tools/servicenow → codemie_test_harness/tests/workflow/virtual_assistant_tools/research}/__init__.py +0 -0
  319. {tests/workflow/virtual_assistant_tools/vcs → codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow}/__init__.py +0 -0
  320. {codemie_test_harness-0.1.129.dist-info → codemie_test_harness-0.1.131.dist-info}/WHEEL +0 -0
  321. {codemie_test_harness-0.1.129.dist-info → codemie_test_harness-0.1.131.dist-info}/entry_points.txt +0 -0
@@ -6,26 +6,33 @@ from codemie_sdk.models.integration import (
6
6
  IntegrationType,
7
7
  CredentialTypes,
8
8
  )
9
- from tests.enums.tools import (
9
+ from codemie_test_harness.tests.enums.tools import (
10
10
  Toolkit,
11
11
  NotificationTool,
12
12
  ProjectManagementTool,
13
13
  CodeBaseTool,
14
14
  CloudTool,
15
15
  )
16
- from tests.test_data.ado_test_plan_tools_test_data import ado_test_plan_get_test_data
17
- from tests.test_data.cloud_tools_test_data import cloud_test_data
18
- from tests.test_data.codebase_tools_test_data import sonar_tools_test_data
19
- from tests.test_data.git_tools_test_data import (
16
+ from codemie_test_harness.tests.test_data.ado_test_plan_tools_test_data import (
17
+ ado_test_plan_get_test_data,
18
+ )
19
+ from codemie_test_harness.tests.test_data.cloud_tools_test_data import cloud_test_data
20
+ from codemie_test_harness.tests.test_data.codebase_tools_test_data import (
21
+ sonar_tools_test_data,
22
+ )
23
+ from codemie_test_harness.tests.test_data.git_tools_test_data import (
20
24
  list_branches_set_active_branch_test_data,
21
25
  )
22
- from tests.test_data.notification_tools_test_data import (
26
+ from codemie_test_harness.tests.test_data.notification_tools_test_data import (
23
27
  EMAIL_TOOL_PROMPT,
24
28
  EMAIL_RESPONSE,
25
29
  )
26
- from tests.test_data.pm_tools_test_data import JIRA_TOOL_PROMPT, RESPONSE_FOR_JIRA_TOOL
27
- from tests.utils.aws_parameters_store import CredentialsUtil
28
- from tests.utils.constants import test_project_name
30
+ from codemie_test_harness.tests.test_data.pm_tools_test_data import (
31
+ JIRA_TOOL_PROMPT,
32
+ RESPONSE_FOR_JIRA_TOOL,
33
+ )
34
+ from codemie_test_harness.tests.utils.aws_parameters_store import CredentialsUtil
35
+ from codemie_test_harness.tests.utils.constants import test_project_name
29
36
 
30
37
  pytestmark = pytest.mark.skipif(
31
38
  os.getenv("ENV") in ["local", "gcp"],
@@ -9,13 +9,16 @@ from codemie_sdk.models.integration import (
9
9
  IntegrationTestResponse,
10
10
  CredentialTypes,
11
11
  )
12
- from tests import PROJECT
13
- from tests.test_data.integrations_test_data import (
12
+ from codemie_test_harness.tests import PROJECT
13
+ from codemie_test_harness.tests.test_data.integrations_test_data import (
14
14
  valid_integrations,
15
15
  invalid_integrations,
16
16
  testable_integrations,
17
17
  )
18
- from tests.utils.base_utils import get_random_name, assert_error_details
18
+ from codemie_test_harness.tests.utils.base_utils import (
19
+ get_random_name,
20
+ assert_error_details,
21
+ )
19
22
 
20
23
 
21
24
  @pytest.mark.parametrize(
@@ -6,26 +6,33 @@ from codemie_sdk.models.integration import (
6
6
  IntegrationType,
7
7
  CredentialTypes,
8
8
  )
9
- from tests.enums.tools import (
9
+ from codemie_test_harness.tests.enums.tools import (
10
10
  Toolkit,
11
11
  NotificationTool,
12
12
  ProjectManagementTool,
13
13
  CodeBaseTool,
14
14
  CloudTool,
15
15
  )
16
- from tests.test_data.ado_test_plan_tools_test_data import ado_test_plan_get_test_data
17
- from tests.test_data.cloud_tools_test_data import cloud_test_data
18
- from tests.test_data.codebase_tools_test_data import sonar_tools_test_data
19
- from tests.test_data.git_tools_test_data import (
16
+ from codemie_test_harness.tests.test_data.ado_test_plan_tools_test_data import (
17
+ ado_test_plan_get_test_data,
18
+ )
19
+ from codemie_test_harness.tests.test_data.cloud_tools_test_data import cloud_test_data
20
+ from codemie_test_harness.tests.test_data.codebase_tools_test_data import (
21
+ sonar_tools_test_data,
22
+ )
23
+ from codemie_test_harness.tests.test_data.git_tools_test_data import (
20
24
  list_branches_set_active_branch_test_data,
21
25
  )
22
- from tests.test_data.notification_tools_test_data import (
26
+ from codemie_test_harness.tests.test_data.notification_tools_test_data import (
23
27
  EMAIL_TOOL_PROMPT,
24
28
  EMAIL_RESPONSE,
25
29
  )
26
- from tests.test_data.pm_tools_test_data import JIRA_TOOL_PROMPT, RESPONSE_FOR_JIRA_TOOL
27
- from tests.utils.aws_parameters_store import CredentialsUtil
28
- from tests.utils.constants import test_project_name
30
+ from codemie_test_harness.tests.test_data.pm_tools_test_data import (
31
+ JIRA_TOOL_PROMPT,
32
+ RESPONSE_FOR_JIRA_TOOL,
33
+ )
34
+ from codemie_test_harness.tests.utils.aws_parameters_store import CredentialsUtil
35
+ from codemie_test_harness.tests.utils.constants import test_project_name
29
36
 
30
37
  pytestmark = pytest.mark.skipif(
31
38
  os.getenv("ENV") in ["local", "gcp"],
@@ -9,13 +9,13 @@ from codemie_sdk.models.integration import (
9
9
  IntegrationTestResponse,
10
10
  CredentialTypes,
11
11
  )
12
- from tests import PROJECT
13
- from tests.test_data.integrations_test_data import (
12
+ from codemie_test_harness.tests import PROJECT
13
+ from codemie_test_harness.tests.test_data.integrations_test_data import (
14
14
  valid_integrations,
15
15
  invalid_integrations,
16
16
  testable_integrations,
17
17
  )
18
- from tests.utils.base_utils import (
18
+ from codemie_test_harness.tests.utils.base_utils import (
19
19
  get_random_name,
20
20
  assert_error_details,
21
21
  )
@@ -1,10 +1,10 @@
1
1
  import os
2
2
  import pytest
3
3
  from hamcrest import assert_that, has_item
4
- from tests.enums.model_types import ModelTypes
5
- from tests.test_data.llm_test_data import MODEL_RESPONSES
6
- from tests.utils.client_factory import get_client
7
- from tests.utils.pytest_utils import check_mark
4
+ from codemie_test_harness.tests.enums.model_types import ModelTypes
5
+ from codemie_test_harness.tests.test_data.llm_test_data import MODEL_RESPONSES
6
+ from codemie_test_harness.tests.utils.client_factory import get_client
7
+ from codemie_test_harness.tests.utils.pytest_utils import check_mark
8
8
 
9
9
 
10
10
  def pytest_generate_tests(metafunc):
@@ -0,0 +1,239 @@
1
+ import pytest
2
+ from hamcrest import (
3
+ assert_that,
4
+ is_,
5
+ equal_to,
6
+ has_key,
7
+ all_of,
8
+ )
9
+
10
+ from tests.utils.base_utils import get_random_name
11
+ from tests.utils.provider_utils import ProviderUtils
12
+
13
+
14
+ @pytest.fixture(scope="session")
15
+ def providers_utils(client):
16
+ return ProviderUtils(client)
17
+
18
+
19
+ nonexistent_id = "nonexistent-provider-id-12345"
20
+
21
+ # =============================================================================
22
+ # GET /v1/providers - List all providers
23
+ # =============================================================================
24
+
25
+
26
+ @pytest.mark.regression
27
+ def test_get_providers_endpoint(providers_utils):
28
+ response = providers_utils.send_get_request_to_providers_endpoint()
29
+
30
+ assert_that(response.status_code, equal_to(200))
31
+
32
+ response_data = response.json()
33
+
34
+ # Validate response structure
35
+ assert_that(isinstance(response_data, list), is_(True))
36
+ for provider in response_data:
37
+ assert_that(
38
+ provider,
39
+ all_of(has_key("provided_toolkits"), has_key("service_location_url")),
40
+ )
41
+
42
+
43
+ # =============================================================================
44
+ # POST /v1/providers - Create new provider
45
+ # =============================================================================
46
+
47
+
48
+ @pytest.mark.regression
49
+ def test_post_providers_endpoint(providers_utils):
50
+ request_json = providers_utils.provider_request_json()
51
+ # Ensure unique provider name to avoid conflicts
52
+ provider_name = get_random_name()
53
+ request_json["name"] = provider_name
54
+
55
+ create_response = providers_utils.send_post_request_to_providers_endpoint(
56
+ request_json
57
+ )
58
+
59
+ assert_that(create_response.status_code, equal_to(200))
60
+
61
+ # get provider to verify it was created
62
+ get_response = providers_utils.send_get_request_to_providers_endpoint()
63
+
64
+ providers = get_response.json()
65
+ created_provider = next((p for p in providers if p["name"] == provider_name), None)
66
+
67
+ assert_that(
68
+ created_provider is not None,
69
+ is_(True),
70
+ "Created provider should be in the list",
71
+ )
72
+
73
+
74
+ @pytest.mark.regression
75
+ def test_post_providers_endpoint_validation_error(providers_utils):
76
+ """Test POST /v1/providers with invalid provided_toolkits node"""
77
+ request_json = providers_utils.provider_request_json()
78
+ request_json["provided_toolkits"] = "invalid_value"
79
+
80
+ response = providers_utils.send_post_request_to_providers_endpoint(request_json)
81
+
82
+ assert_that(response.status_code, equal_to(422))
83
+ assert_that(
84
+ response.json()["error"]["details"][0]["msg"],
85
+ equal_to("Input should be a valid list"),
86
+ )
87
+
88
+
89
+ @pytest.mark.regression
90
+ def test_post_providers_endpoint_with_existing_name(providers_utils):
91
+ provider_id = providers_utils.create_provider()
92
+
93
+ provider = providers_utils.get_provider_by_id(provider_id).json()
94
+
95
+ existing_name = provider["name"]
96
+ request_json = providers_utils.provider_request_json()
97
+ request_json["name"] = existing_name
98
+
99
+ create_response = providers_utils.send_post_request_to_providers_endpoint(
100
+ request_json
101
+ )
102
+
103
+ assert_that(create_response.status_code, equal_to(409))
104
+ assert_that(
105
+ create_response.json()["error"]["details"],
106
+ equal_to(f"A provider with the name [{existing_name}] already exists."),
107
+ )
108
+
109
+
110
+ # =============================================================================
111
+ # GET /v1/providers/datasource_schemas - Get datasource schemas
112
+ # =============================================================================
113
+
114
+
115
+ @pytest.mark.regression
116
+ def test_get_providers_datasource_schema_endpoint(providers_utils):
117
+ response = providers_utils.send_get_request_datasource_schemas_endpoint()
118
+
119
+ assert_that(response.status_code, equal_to(200))
120
+
121
+ response_data = response.json()
122
+
123
+ # Validate response structure
124
+ assert_that(isinstance(response_data, list), is_(True))
125
+ for provider in response_data:
126
+ assert_that(
127
+ provider,
128
+ all_of(
129
+ has_key("id"),
130
+ has_key("provider_name"),
131
+ has_key("name"),
132
+ has_key("base_schema"),
133
+ has_key("create_schema"),
134
+ ),
135
+ )
136
+
137
+
138
+ # =============================================================================
139
+ # GET /v1/providers/{provider_id} - Get specific provider
140
+ # =============================================================================
141
+
142
+
143
+ @pytest.mark.regression
144
+ def test_get_provider_by_id_endpoint(providers_utils):
145
+ provider_id = providers_utils.create_provider()
146
+
147
+ provider_response = providers_utils.get_provider_by_id(provider_id)
148
+
149
+ assert_that(provider_response.status_code, equal_to(200))
150
+ assert_that(provider_response.json()["id"], equal_to(provider_id))
151
+
152
+
153
+ @pytest.mark.regression
154
+ def test_get_nonexistent_provider(providers_utils):
155
+ """Test error handling when requesting nonexistent provider."""
156
+ response = providers_utils.get_provider_by_id(nonexistent_id)
157
+
158
+ assert_that(response.status_code, equal_to(404))
159
+
160
+ assert_that(
161
+ response.json()["error"]["details"],
162
+ equal_to(
163
+ f"The provider with ID [{nonexistent_id}] could not be found in the system."
164
+ ),
165
+ )
166
+
167
+
168
+ # =============================================================================
169
+ # PUT /v1/providers/{provider_id} - Update specific provider
170
+ # =============================================================================
171
+
172
+
173
+ @pytest.mark.regression
174
+ def test_put_provider_endpoint(providers_utils):
175
+ provider_id = providers_utils.create_provider()
176
+ provider = providers_utils.get_provider_by_id(provider_id).json()
177
+
178
+ request_json = providers_utils.provider_request_json()
179
+ toolkits = provider["provided_toolkits"]
180
+ toolkits[0]["name"] = "Updated toolkit name"
181
+ toolkits[0]["description"] = "Updated toolkit description"
182
+ request_json["provided_toolkits"] = toolkits
183
+ request_json["name"] = f"{provider['name']} - updated"
184
+ update_response = providers_utils.update_provider(provider_id, request_json)
185
+
186
+ assert_that(update_response.status_code, equal_to(200))
187
+ assert_that(update_response.json()["provided_toolkits"], equal_to(toolkits))
188
+
189
+
190
+ @pytest.mark.regression
191
+ def test_put_nonexistent_provider(providers_utils):
192
+ response = providers_utils.update_provider(nonexistent_id, {})
193
+
194
+ assert_that(response.status_code, equal_to(404))
195
+ assert_that(
196
+ response.json()["error"]["details"],
197
+ equal_to(
198
+ f"The provider with ID [{nonexistent_id}] could not be found in the system."
199
+ ),
200
+ )
201
+
202
+
203
+ # =============================================================================
204
+ # DELETE /v1/providers/{provider_id} - Delete specific provider
205
+ # =============================================================================
206
+
207
+
208
+ @pytest.mark.regression
209
+ def test_delete_provider_endpoint(providers_utils):
210
+ provider_id = providers_utils.create_provider()
211
+ delete_response = providers_utils.send_delete_provider_request(provider_id)
212
+
213
+ assert_that(delete_response.status_code, equal_to(204))
214
+
215
+ response = providers_utils.get_provider_by_id(provider_id)
216
+
217
+ assert_that(response.status_code, equal_to(404))
218
+
219
+ assert_that(
220
+ response.json()["error"]["details"],
221
+ equal_to(
222
+ f"The provider with ID [{provider_id}] could not be found in the system."
223
+ ),
224
+ )
225
+
226
+
227
+ @pytest.mark.regression
228
+ def test_delete_nonexistent_provider(providers_utils):
229
+ """Test error handling when requesting nonexistent provider."""
230
+ response = providers_utils.send_delete_provider_request(nonexistent_id)
231
+
232
+ assert_that(response.status_code, equal_to(404))
233
+
234
+ assert_that(
235
+ response.json()["error"]["details"],
236
+ equal_to(
237
+ f"The provider with ID [{nonexistent_id}] could not be found in the system."
238
+ ),
239
+ )
@@ -1,9 +1,9 @@
1
1
  import pytest
2
2
  from hamcrest import assert_that
3
3
 
4
- from tests import TEST_USER
5
- from tests.utils.base_utils import get_random_name
6
- from tests.utils.pytest_utils import check_mark
4
+ from codemie_test_harness.tests import TEST_USER
5
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
6
+ from codemie_test_harness.tests.utils.pytest_utils import check_mark
7
7
 
8
8
 
9
9
  @pytest.fixture(scope="session")
@@ -3,9 +3,9 @@ from hamcrest import assert_that
3
3
 
4
4
  from codemie_sdk.models.datasource import DataSourceType, DataSourceStatus
5
5
  from codemie_sdk.models.integration import CredentialTypes
6
- from tests import TEST_USER, PROJECT
7
- from tests.utils.aws_parameters_store import CredentialsUtil
8
- from tests.utils.base_utils import get_random_name
6
+ from codemie_test_harness.tests import TEST_USER, PROJECT
7
+ from codemie_test_harness.tests.utils.aws_parameters_store import CredentialsUtil
8
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
9
9
 
10
10
  ASSERTION_ERROR = "Datasource is not found in search results."
11
11
 
@@ -2,8 +2,8 @@ import pytest
2
2
  from hamcrest import assert_that
3
3
 
4
4
  from codemie_sdk.models.integration import CredentialTypes, IntegrationType
5
- from tests.utils.aws_parameters_store import CredentialsUtil
6
- from tests.utils.base_utils import get_random_name
5
+ from codemie_test_harness.tests.utils.aws_parameters_store import CredentialsUtil
6
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
7
7
 
8
8
  ASSERTION_ERROR = "Integration is not found in search results."
9
9
 
@@ -1,9 +1,9 @@
1
1
  import pytest
2
2
  from hamcrest import assert_that
3
3
 
4
- from tests import PROJECT
5
- from tests.utils.base_utils import get_random_name
6
- from tests.utils.yaml_utils import AssistantModel, StateModel
4
+ from codemie_test_harness.tests import PROJECT
5
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
6
+ from codemie_test_harness.tests.utils.yaml_utils import AssistantModel, StateModel
7
7
 
8
8
 
9
9
  @pytest.fixture(scope="session")
@@ -20,8 +20,8 @@ from codemie_sdk.models.assistant import (
20
20
  ChatRole,
21
21
  BaseModelResponse,
22
22
  )
23
- from tests import PROJECT, LANGFUSE_TRACES_ENABLED
24
- from tests.utils.base_utils import get_random_name
23
+ from codemie_test_harness.tests import PROJECT, LANGFUSE_TRACES_ENABLED
24
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
25
25
 
26
26
 
27
27
  def test_get_tools(client: CodeMieClient):
@@ -28,8 +28,8 @@ from codemie_sdk.models.integration import (
28
28
  Integration,
29
29
  IntegrationType,
30
30
  )
31
- from tests import PROJECT
32
- from tests.utils.base_utils import get_random_name
31
+ from codemie_test_harness.tests import PROJECT
32
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
33
33
 
34
34
 
35
35
  @pytest.fixture
@@ -11,8 +11,8 @@ from codemie_sdk.models.integration import (
11
11
  CredentialValues,
12
12
  IntegrationType,
13
13
  )
14
- from tests import PROJECT
15
- from tests.utils.base_utils import get_random_name
14
+ from codemie_test_harness.tests import PROJECT
15
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
16
16
 
17
17
 
18
18
  def test_list_project_integrations_minimal(client: CodeMieClient):
@@ -16,8 +16,8 @@ from codemie_sdk.models.assistant import (
16
16
  ChatRole,
17
17
  )
18
18
  from codemie_sdk.models.task import BackgroundTaskEntity
19
- from tests import PROJECT, LANGFUSE_TRACES_ENABLED
20
- from tests.utils.base_utils import get_random_name
19
+ from codemie_test_harness.tests import PROJECT, LANGFUSE_TRACES_ENABLED
20
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
21
21
 
22
22
 
23
23
  def test_background_task_flow(client: CodeMieClient, default_llm):
@@ -11,8 +11,8 @@ from codemie_sdk.models.workflow import (
11
11
  WorkflowMode,
12
12
  ExecutionStatus,
13
13
  )
14
- from tests import PROJECT
15
- from tests.utils.base_utils import get_random_name
14
+ from codemie_test_harness.tests import PROJECT
15
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
16
16
 
17
17
 
18
18
  @pytest.fixture
@@ -11,8 +11,8 @@ from codemie_sdk.models.workflow import (
11
11
  WorkflowUpdateRequest,
12
12
  WorkflowMode,
13
13
  )
14
- from tests import PROJECT
15
- from tests.utils.base_utils import get_random_name
14
+ from codemie_test_harness.tests import PROJECT
15
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
16
16
 
17
17
 
18
18
  @pytest.fixture
@@ -1,4 +1,4 @@
1
- from tests.enums.tools import Toolkit, AzureDevOpsTestPlanTool
1
+ from codemie_test_harness.tests.enums.tools import Toolkit, AzureDevOpsTestPlanTool
2
2
 
3
3
  ado_test_plan_get_test_data = [
4
4
  (
@@ -1,4 +1,4 @@
1
- from tests.enums.tools import AzureDevOpsWikiTool, Toolkit
1
+ from codemie_test_harness.tests.enums.tools import AzureDevOpsWikiTool, Toolkit
2
2
 
3
3
  ado_wiki_get_test_data = [
4
4
  (
@@ -1,4 +1,4 @@
1
- from tests.enums.tools import Toolkit, AzureDevOpsWorkItemTool
1
+ from codemie_test_harness.tests.enums.tools import Toolkit, AzureDevOpsWorkItemTool
2
2
 
3
3
  ado_work_item_get_test_data = [
4
4
  (
@@ -2,9 +2,9 @@ import os
2
2
 
3
3
  import pytest
4
4
 
5
- from tests.enums.tools import Toolkit, CloudTool
5
+ from codemie_test_harness.tests.enums.tools import Toolkit, CloudTool
6
6
  from codemie_sdk.models.integration import CredentialTypes
7
- from tests.utils.aws_parameters_store import CredentialsUtil
7
+ from codemie_test_harness.tests.utils.aws_parameters_store import CredentialsUtil
8
8
 
9
9
  cloud_test_data = [
10
10
  (
@@ -1,5 +1,5 @@
1
- from tests.enums.tools import Toolkit, CodeBaseTool
2
- from tests.utils.aws_parameters_store import CredentialsUtil
1
+ from codemie_test_harness.tests.enums.tools import Toolkit, CodeBaseTool
2
+ from codemie_test_harness.tests.utils.aws_parameters_store import CredentialsUtil
3
3
 
4
4
  code_tools_test_data = [
5
5
  (
@@ -1,4 +1,4 @@
1
- from tests.enums.integrations import DataBaseDialect
1
+ from codemie_test_harness.tests.enums.integrations import DataBaseDialect
2
2
 
3
3
  ELASTIC_TOOL_TASK = """
4
4
  Search for Document ID: Zx4eF5cBvnDA_Y45jlWN in codemie_metrics_logs index
@@ -1,4 +1,4 @@
1
- from tests.enums.tools import Toolkit, AzureDevOpsTestPlanTool
1
+ from codemie_test_harness.tests.enums.tools import Toolkit, AzureDevOpsTestPlanTool
2
2
 
3
3
  ado_test_plan_get_test_data = [
4
4
  (
@@ -1,4 +1,4 @@
1
- from tests.enums.tools import Toolkit, AzureDevOpsWikiTool
1
+ from codemie_test_harness.tests.enums.tools import Toolkit, AzureDevOpsWikiTool
2
2
 
3
3
  ado_wiki_get_test_data = [
4
4
  (
@@ -1,4 +1,4 @@
1
- from tests.enums.tools import Toolkit, AzureDevOpsWorkItemTool
1
+ from codemie_test_harness.tests.enums.tools import Toolkit, AzureDevOpsWorkItemTool
2
2
 
3
3
  ado_work_item_get_test_data = [
4
4
  (
@@ -2,9 +2,9 @@ import os
2
2
 
3
3
  import pytest
4
4
 
5
- from tests.enums.tools import Toolkit, CloudTool
5
+ from codemie_test_harness.tests.enums.tools import Toolkit, CloudTool
6
6
  from codemie_sdk.models.integration import CredentialTypes
7
- from tests.utils.aws_parameters_store import CredentialsUtil
7
+ from codemie_test_harness.tests.utils.aws_parameters_store import CredentialsUtil
8
8
 
9
9
  cloud_test_data = [
10
10
  (
@@ -1,4 +1,4 @@
1
- from tests.enums.tools import Toolkit, CodeBaseTool
1
+ from codemie_test_harness.tests.enums.tools import Toolkit, CodeBaseTool
2
2
 
3
3
  sonar_tools_test_data = [
4
4
  (
@@ -1,5 +1,5 @@
1
- from tests.enums.tools import DataManagementTool, Toolkit
2
- from tests.enums.integrations import DataBaseDialect
1
+ from codemie_test_harness.tests.enums.tools import DataManagementTool, Toolkit
2
+ from codemie_test_harness.tests.enums.integrations import DataBaseDialect
3
3
 
4
4
  sql_tools_test_data = [
5
5
  (
@@ -1,5 +1,5 @@
1
- from tests.enums.tools import PluginTool
2
- from tests.utils.constants import TESTS_PATH
1
+ from codemie_test_harness.tests.enums.tools import PluginTool
2
+ from codemie_test_harness.tests.utils.constants import TESTS_PATH
3
3
 
4
4
  cli_tools_test_data = [
5
5
  (
@@ -2,7 +2,7 @@ import os
2
2
 
3
3
  import pytest
4
4
 
5
- from tests.enums.tools import FileManagementTool
5
+ from codemie_test_harness.tests.enums.tools import FileManagementTool
6
6
 
7
7
  file_management_tools_test_data = [
8
8
  (
@@ -2,8 +2,8 @@ import os
2
2
 
3
3
  import pytest
4
4
 
5
- from tests.enums.tools import NotificationTool
6
- from tests.test_data.notification_tools_test_data import (
5
+ from codemie_test_harness.tests.enums.tools import NotificationTool
6
+ from codemie_test_harness.tests.test_data.notification_tools_test_data import (
7
7
  EMAIL_SUBJECT,
8
8
  EMAIL_BODY,
9
9
  EMAIL_RESPONSE,
@@ -1,6 +1,6 @@
1
1
  import os
2
2
 
3
- from tests.enums.tools import Toolkit, OpenApiTool
3
+ from codemie_test_harness.tests.enums.tools import Toolkit, OpenApiTool
4
4
 
5
5
  # OpenAPI tools test data for direct tools calling
6
6
  open_api_tools_test_data = [
@@ -1,5 +1,5 @@
1
- from tests.enums.tools import Toolkit, ProjectManagementTool
2
- from tests.utils.constants import ProjectManagementIntegrationType
1
+ from codemie_test_harness.tests.enums.tools import Toolkit, ProjectManagementTool
2
+ from codemie_test_harness.tests.utils.constants import ProjectManagementIntegrationType
3
3
 
4
4
  project_management_tools_data = [
5
5
  (