codemie-test-harness 0.1.183__tar.gz → 0.1.198__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.

Potentially problematic release.


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

Files changed (397) hide show
  1. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/PKG-INFO +134 -3
  2. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/README.md +130 -1
  3. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/cli.py +42 -6
  4. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/commands/run_cmd.py +24 -1
  5. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/constants.py +1 -0
  6. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/runner.py +17 -3
  7. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/utils.py +12 -2
  8. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/pytest.ini +3 -0
  9. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/test_assistants.py +17 -1
  10. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/codebase/test_codebase_tools.py +1 -1
  11. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/datamanagement/test_assistant_with_data_management_tools.py +47 -6
  12. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/mcp/test_cli_mcp_server.py +0 -4
  13. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/mcp/test_mcp_servers.py +0 -4
  14. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/conftest.py +19 -3
  15. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/enums/environment.py +3 -3
  16. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/enums/integrations.py +1 -0
  17. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/enums/model_types.py +1 -0
  18. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/integrations/project/test_default_integrations.py +41 -15
  19. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/integrations/project/test_project_integrations.py +42 -0
  20. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/integrations/user/test_default_integrations.py +41 -15
  21. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/llm/assistants/test_llm.py +45 -2
  22. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/assistant_test_data.py +171 -171
  23. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/codebase_tools_test_data.py +2 -0
  24. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/data_management_tools_test_data.py +18 -0
  25. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/data_management_tools_test_data.py +18 -1
  26. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/report_portal_tools_test_data.py +189 -197
  27. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/integrations_test_data.py +163 -2
  28. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/llm_test_data.py +1 -0
  29. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/open_api_tools_test_data.py +22 -1
  30. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/report_portal_tools_test_data.py +89 -112
  31. codemie_test_harness-0.1.198/codemie_test_harness/tests/test_data/research_tools_test_data.py +126 -0
  32. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/assistant_utils.py +22 -12
  33. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/credentials_manager.py +66 -8
  34. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/workflow_utils.py +91 -0
  35. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/access_management/test_workflow_with_assistant_with_keycloak_tool.py +7 -0
  36. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_test_plan_tools.py +50 -1
  37. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_wiki_tools.py +39 -1
  38. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_work_item_tools.py +34 -1
  39. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/cloud/test_workflow_with_assistant_cloud_tools.py +6 -0
  40. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/codebase/test_worfklow_with_assistant_codebase_tools.py +11 -0
  41. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/data_management/test_workflow_with_assistant_with_data_management_tools.py +72 -1
  42. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool.py +31 -0
  43. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +31 -0
  44. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +26 -0
  45. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/file_management/test_workflow_with_assistant_with_file_management_tools.py +63 -1
  46. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py +82 -7
  47. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/mcp/test_workflow_with_assistant_with_mcp_server.py +23 -4
  48. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/notification/test_workflow_with_assistant_notification_tools.py +12 -0
  49. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/open_api/test_workflow_with_assistant_with_open_api_tools.py +6 -0
  50. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_development_plugin.py +29 -2
  51. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_plugin_and_mcp_servers.py +14 -1
  52. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/project_management/test_workflow_with_assistant_pm_tools.py +7 -0
  53. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/report_portal/test_workflow_with_assistant_with_report_portal_tools.py +7 -0
  54. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/research/test_workflow_with_assistant_research_tools.py +14 -1
  55. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +6 -0
  56. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/vcs/workflow_with_assistant_vcs_tools.py +6 -0
  57. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_cloud_tools.py +12 -9
  58. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/access_management/test_workflow_with_keycloak_tool.py +8 -1
  59. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_test_plan_tools.py +28 -1
  60. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_wiki_tools.py +24 -1
  61. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_work_item_tools.py +20 -1
  62. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud/test_workflow_with_cloud_tools.py +13 -4
  63. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/test_workflow_with_codebase_tools.py +16 -1
  64. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/test_workflow_with_data_management_tools.py +73 -1
  65. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool.py +34 -1
  66. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +34 -1
  67. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +34 -1
  68. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/test_workflow_with_file_management_tools.py +101 -49
  69. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py +42 -3
  70. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp/test_workflow_with_mcp_server.py +27 -5
  71. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/notification/test_workflow_with_notification_tools.py +13 -0
  72. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/open_api/test_workflow_with_open_api_tools.py +10 -1
  73. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_development_plugin.py +20 -0
  74. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_plugin_and_mcp_servers.py +14 -1
  75. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/project_management/test_workflow_with_project_management_tools.py +10 -1
  76. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/report_portal/test_workflow_with_report_portal_tool.py +10 -1
  77. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/research/test_workflow_with_research_tools.py +9 -0
  78. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +10 -1
  79. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/test_workflow_with_vcs_tools.py +9 -1
  80. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/pyproject.toml +7 -2
  81. codemie_test_harness-0.1.183/codemie_test_harness/tests/test_data/research_tools_test_data.py +0 -104
  82. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/.env +0 -0
  83. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/__init__.py +0 -0
  84. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/__init__.py +0 -0
  85. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/commands/__init__.py +0 -0
  86. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/commands/assistant_cmd.py +0 -0
  87. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/commands/config_cmd.py +1 -1
  88. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/commands/marks_cmd.py +0 -0
  89. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/commands/workflow_cmd.py +0 -0
  90. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/cli/marks_utils.py +0 -0
  91. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/__init__.py +0 -0
  92. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/__init__.py +0 -0
  93. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/datasource/__init__.py +0 -0
  94. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/datasource/test_code_datasource.py +0 -0
  95. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/datasource/test_confluence_datasource.py +0 -0
  96. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/datasource/test_file_indexing.py +0 -0
  97. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/datasource/test_google_datasource.py +0 -0
  98. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/datasource/test_jira_datasource.py +0 -0
  99. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/default_integrations/__init__.py +0 -0
  100. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool.py +0 -0
  101. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  102. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_with_datasource.py +0 -0
  103. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/__init__.py +0 -0
  104. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/access_management/__init__.py +0 -0
  105. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/access_management/test_keycloak_tool.py +0 -0
  106. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/ado/__init__.py +0 -0
  107. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_test_plan_tools.py +0 -0
  108. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_wiki_tools.py +0 -0
  109. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_work_item_tools.py +0 -0
  110. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/cloud/__init__.py +0 -0
  111. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/cloud/test_cloud_tools.py +0 -0
  112. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/codebase/__init__.py +0 -0
  113. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/datamanagement/__init__.py +0 -0
  114. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/filemanagement/__init__.py +0 -0
  115. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/filemanagement/test_assistant_with_file_management_tools.py +0 -0
  116. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/git/__init__.py +0 -0
  117. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/git/test_assistant_with_git_tools.py +0 -0
  118. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/mcp/__init__.py +0 -0
  119. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/notification/__init__.py +0 -0
  120. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/notification/test_assistant_notification_tools.py +0 -0
  121. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/openapi/__init__.py +0 -0
  122. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/openapi/test_assistant_with_open_api_tools.py +0 -0
  123. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/plugin/__init__.py +0 -0
  124. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_development_plugin.py +0 -0
  125. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_plugin_and_mcp_servers.py +0 -0
  126. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/plugin/test_single_assistant_dual_time_plugins.py +0 -0
  127. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/project_management/__init__.py +0 -0
  128. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/project_management/test_assistant_pm_tools.py +0 -0
  129. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/report_portal/__init__.py +0 -0
  130. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/report_portal/test_assistant_report_portal_tools.py +0 -0
  131. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/research/__init__.py +0 -0
  132. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/research/test_assistant_research_tools.py +0 -0
  133. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/servicenow/__init__.py +0 -0
  134. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/servicenow/test_servicenow_tools.py +0 -0
  135. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/vcs/__init__.py +0 -0
  136. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/assistant/tools/vcs/test_assistant_with_vcs_tools.py +0 -0
  137. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/conversations/__init__.py +0 -0
  138. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/conversations/test_conversations_endpoints.py +0 -0
  139. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/e2e/__init__.py +0 -0
  140. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/e2e/test_e2e.py +0 -0
  141. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/enums/__init__.py +0 -0
  142. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/enums/tools.py +0 -0
  143. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/integrations/__init__.py +0 -0
  144. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/integrations/project/__init__.py +0 -0
  145. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/integrations/user/__init__.py +0 -0
  146. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/integrations/user/test_user_integrations.py +0 -0
  147. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/llm/__init__.py +0 -0
  148. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/llm/assistants/__init__.py +0 -0
  149. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/llm/assistants/test_lite_llm.py +0 -0
  150. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/providers/__init__.py +0 -0
  151. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/providers/test_providers_endpoints.py +0 -0
  152. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/search/__init__.py +0 -0
  153. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/search/test_search_assistant.py +0 -0
  154. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/search/test_search_datasource.py +0 -0
  155. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/search/test_search_integration.py +0 -0
  156. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/search/test_search_workflow.py +0 -0
  157. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/service/__init__.py +0 -0
  158. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/service/test_assistant_service.py +0 -0
  159. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/service/test_datasource_service.py +0 -0
  160. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/service/test_integration_service.py +0 -0
  161. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/service/test_llm_service.py +0 -0
  162. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/service/test_task_service.py +0 -0
  163. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/service/test_user_service.py +0 -0
  164. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/service/test_workflow_execution_service.py +0 -0
  165. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/service/test_workflow_service.py +0 -0
  166. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/__init__.py +0 -0
  167. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/ado_test_plan_tools_test_data.py +0 -0
  168. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/ado_wiki_tools_test_data.py +0 -0
  169. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/ado_work_item_tools_test_data.py +0 -0
  170. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/cloud_tools_test_data.py +0 -0
  171. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/__init__.py +0 -0
  172. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/ado_test_plan_tools_test_data.py +0 -0
  173. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/ado_wiki_tools_test_data.py +0 -0
  174. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/ado_work_item_tools_test_data.py +0 -0
  175. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/cloud_tools_test_data.py +0 -0
  176. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/codebase_tools_test_data.py +0 -0
  177. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/direct_tools_test_data.py +0 -0
  178. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/file_management_tools_test_data.py +0 -0
  179. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/keycloak_tool_test_data.py +0 -0
  180. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/notification_tools_test_data.py +0 -0
  181. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/open_api_tools_test_data.py +0 -0
  182. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/project_management_tools_test_data.py +0 -0
  183. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/research_tools_test_data.py +0 -0
  184. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/servicenow_tools_test_data.py +0 -0
  185. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/direct_tools/vcs_tools_test_data.py +0 -0
  186. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/file_management_tools_test_data.py +0 -0
  187. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/file_test_data.py +0 -0
  188. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/large-files/large_file.txt +0 -0
  189. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/provider_payload.json +0 -0
  190. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.csv +0 -0
  191. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.docx +0 -0
  192. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.gif +0 -0
  193. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.ini +0 -0
  194. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.jpeg +0 -0
  195. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.jpg +0 -0
  196. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.json +0 -0
  197. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.pdf +0 -0
  198. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.png +0 -0
  199. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.pptx +0 -0
  200. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.txt +0 -0
  201. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.vtt +0 -0
  202. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.xlsx +0 -0
  203. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.xml +0 -0
  204. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test.yaml +0 -0
  205. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test_extended.docx +0 -0
  206. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/files/test_extended.xlsx +0 -0
  207. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/git_tools_test_data.py +0 -0
  208. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/google_datasource_test_data.py +0 -0
  209. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/index_test_data.py +0 -0
  210. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/keycloak_tool_test_data.py +0 -0
  211. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/mcp_server_test_data.py +0 -0
  212. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/notification_tools_test_data.py +0 -0
  213. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/openapi.json +0 -0
  214. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/output_schema_test_data.py +0 -0
  215. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/plugin_tools_test_data.py +0 -0
  216. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/pm_tools_test_data.py +0 -0
  217. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/project_management_test_data.py +0 -0
  218. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/servicenow_tools_test_data.py +0 -0
  219. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/vcs_tools_test_data.py +0 -0
  220. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_assistant_id.yaml +0 -0
  221. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_assistant_in_state.yaml +0 -0
  222. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_data_source.yaml +0 -0
  223. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_state.yaml +0 -0
  224. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_tool.yaml +0 -0
  225. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_yaml.yaml +0 -0
  226. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_yaml_format.yaml +0 -0
  227. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_assistant_id.yaml +0 -0
  228. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_assistant_tools_name.yaml +0 -0
  229. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_backoff_factor.yaml +0 -0
  230. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_initial_interval.yaml +0 -0
  231. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_max_attempts.yaml +0 -0
  232. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_max_interval.yaml +0 -0
  233. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states.yaml +0 -0
  234. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_id.yaml +0 -0
  235. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next.yaml +0 -0
  236. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_condition_expression.yaml +0 -0
  237. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_condition_otherwise.yaml +0 -0
  238. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_condition_then.yaml +0 -0
  239. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_cases.yaml +0 -0
  240. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_cases_condition.yaml +0 -0
  241. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_cases_state_id.yaml +0 -0
  242. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_default.yaml +0 -0
  243. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_backoff_factor.yaml +0 -0
  244. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_initial_interval.yaml +0 -0
  245. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_max_attempts.yaml +0 -0
  246. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_max_interval.yaml +0 -0
  247. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_system_prompt.yaml +0 -0
  248. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_tools_id.yaml +0 -0
  249. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_tools_name.yaml +0 -0
  250. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/test_data/workflow_validation_messages.py +0 -0
  251. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/__init__.py +0 -0
  252. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/assistants/__init__.py +0 -0
  253. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/assistants/test_create_assistant.py +0 -0
  254. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/chats/conftest.py +0 -0
  255. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/chats/test_chat_configuration.py +0 -0
  256. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/chats/test_chat_functionality.py +0 -0
  257. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/conftest.py +0 -0
  258. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/datasource/__init__.py +0 -0
  259. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/datasource/test_create_datasource.py +0 -0
  260. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/datasource/test_datasource_page.py +0 -0
  261. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/datasource/test_edit_datasource.py +0 -0
  262. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/datasource/test_view_datasource.py +0 -0
  263. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/integrations/__init__.py +0 -0
  264. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/integrations/test_create_integration.py +0 -0
  265. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/__init__.py +0 -0
  266. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/assistants/__init__.py +0 -0
  267. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/assistants/assistants_page.py +0 -0
  268. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/assistants/create_assistant_page.py +0 -0
  269. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/assistants/generate_with_ai_modal.py +0 -0
  270. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/base_page.py +0 -0
  271. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/chats/chat_page.py +0 -0
  272. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/chats/chats_sidebar.py +0 -0
  273. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/chats/configuration_panel.py +0 -0
  274. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/chats/configure_and_test_panel.py +0 -0
  275. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/__init__.py +0 -0
  276. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/execution_history_row.py +0 -0
  277. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/integration_row.py +0 -0
  278. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/menu.py +0 -0
  279. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/pop_up.py +0 -0
  280. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/project_selector.py +0 -0
  281. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/workflow_card.py +0 -0
  282. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/workflow_execution_history_item.py +0 -0
  283. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/workflow_execution_state.py +0 -0
  284. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/workflow_sidebar.py +0 -0
  285. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/components/workflow_state_card.py +0 -0
  286. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/datasources/__init__.py +0 -0
  287. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/datasources/create_edit_datasource_page.py +0 -0
  288. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/datasources/datasource_page.py +0 -0
  289. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/datasources/datasource_sidebar.py +0 -0
  290. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/datasources/view_datasource_page.py +0 -0
  291. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/integrations/create_integration_page.py +0 -0
  292. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/integrations/integrations_page.py +0 -0
  293. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/login_page.py +0 -0
  294. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/workflows/__init__.py +0 -0
  295. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/workflows/base_workflow_form_page.py +0 -0
  296. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/workflows/create_workflow_page.py +0 -0
  297. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/workflows/edit_workflow_page.py +0 -0
  298. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_details_page.py +0 -0
  299. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_executions_page.py +0 -0
  300. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_template_details.py +0 -0
  301. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_templates_page.py +0 -0
  302. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/pageobject/workflows/workflows_page.py +0 -0
  303. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/test_data/__init__.py +0 -0
  304. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/test_data/assistant_test_data.py +0 -0
  305. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/test_data/chat_test_data.py +0 -0
  306. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/test_data/datasource_test_data.py +0 -0
  307. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/test_data/integration_test_data.py +0 -0
  308. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/workflows/__init__.py +0 -0
  309. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/workflows/test_create_workflow.py +0 -0
  310. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/workflows/test_edit_workflow.py +0 -0
  311. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/workflows/test_workflow_details.py +0 -0
  312. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/workflows/test_workflow_executions_page.py +0 -0
  313. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/workflows/test_workflow_templates.py +0 -0
  314. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/ui/workflows/test_workflows.py +0 -0
  315. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/__init__.py +0 -0
  316. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/aws_parameters_store.py +0 -0
  317. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/base_utils.py +0 -0
  318. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/client_factory.py +0 -0
  319. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/constants.py +0 -0
  320. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/conversation_utils.py +0 -0
  321. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/datasource_utils.py +0 -0
  322. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/env_resolver.py +0 -0
  323. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/env_utils.py +0 -0
  324. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/file_utils.py +0 -0
  325. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/gitbud_utils.py +0 -0
  326. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/http_utils.py +0 -0
  327. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/integration_utils.py +0 -0
  328. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/json_utils.py +0 -0
  329. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/llm_utils.py +0 -0
  330. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/logger_util.py +0 -0
  331. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/notification_utils.py +0 -0
  332. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/provider_utils.py +0 -0
  333. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/pytest_utils.py +0 -0
  334. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/search_utils.py +0 -0
  335. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/similarity_check.py +0 -0
  336. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/user_utils.py +0 -0
  337. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/utils/yaml_utils.py +0 -0
  338. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/__init__.py +0 -0
  339. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/__init__.py +0 -0
  340. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/access_management/__init__.py +0 -0
  341. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/ado/__init__.py +0 -0
  342. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/cloud/__init__.py +0 -0
  343. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/codebase/__init__.py +0 -0
  344. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/data_management/__init__.py +0 -0
  345. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/__init__.py +0 -0
  346. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/file_management/__init__.py +0 -0
  347. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/git/__init__.py +0 -0
  348. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/mcp/__init__.py +0 -0
  349. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/notification/__init__.py +0 -0
  350. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/open_api/__init__.py +0 -0
  351. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/plugin/__init__.py +0 -0
  352. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/project_management/__init__.py +0 -0
  353. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/report_portal/__init__.py +0 -0
  354. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/research/__init__.py +0 -0
  355. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/servicenow/__init__.py +0 -0
  356. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/assistant_tools/vcs/__init__.py +0 -0
  357. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/config_validation/__init__.py +0 -0
  358. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/config_validation/test_config_validation.py +0 -0
  359. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/__init__.py +0 -0
  360. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/__init__.py +0 -0
  361. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool.py +0 -0
  362. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  363. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_access_management_tool.py +0 -0
  364. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_test_plan_tools.py +0 -0
  365. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_wiki_tools.py +0 -0
  366. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_work_item_tools.py +0 -0
  367. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_codebase_tools.py +0 -0
  368. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools_elastic.py +0 -0
  369. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools_sql.py +0 -0
  370. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_file_management_tools.py +0 -0
  371. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_notification_tools.py +0 -0
  372. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_open_api_tools.py +0 -0
  373. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_plugin_tools.py +0 -0
  374. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_project_management_tools.py +0 -0
  375. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_report_portal_tools.py +0 -0
  376. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_research_tools.py +0 -0
  377. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_servicenow_tools.py +0 -0
  378. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_vcs_tools.py +0 -0
  379. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/test_workflows.py +0 -0
  380. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/__init__.py +0 -0
  381. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/access_management/__init__.py +0 -0
  382. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/__init__.py +0 -0
  383. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud/__init__.py +0 -0
  384. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/__init__.py +0 -0
  385. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/__init__.py +0 -0
  386. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/__init__.py +0 -0
  387. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/__init__.py +0 -0
  388. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/git/__init__.py +0 -0
  389. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp/__init__.py +0 -0
  390. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/notification/__init__.py +0 -0
  391. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/open_api/__init__.py +0 -0
  392. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/__init__.py +0 -0
  393. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/project_management/__init__.py +0 -0
  394. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/report_portal/__init__.py +0 -0
  395. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/research/__init__.py +0 -0
  396. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/__init__.py +0 -0
  397. {codemie_test_harness-0.1.183 → codemie_test_harness-0.1.198}/codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: codemie-test-harness
3
- Version: 0.1.183
3
+ Version: 0.1.198
4
4
  Summary: Autotest for CodeMie backend and UI
5
5
  Author: Anton Yeromin
6
6
  Author-email: anton_yeromin@epam.com
@@ -13,11 +13,13 @@ Requires-Dist: aws-assume-role-lib (>=2.10.0,<3.0.0)
13
13
  Requires-Dist: boto3 (>=1.39.8,<2.0.0)
14
14
  Requires-Dist: click (>=8.1.7,<9.0.0)
15
15
  Requires-Dist: codemie-plugins (>=0.1.123,<0.2.0)
16
- Requires-Dist: codemie-sdk-python (==0.1.183)
16
+ Requires-Dist: codemie-sdk-python (==0.1.198)
17
17
  Requires-Dist: pytest (>=8.4.1,<9.0.0)
18
18
  Requires-Dist: pytest-playwright (>=0.7.0,<0.8.0)
19
+ Requires-Dist: pytest-repeat (>=0.9.3,<0.10.0)
19
20
  Requires-Dist: pytest-reportportal (>=5.5.2,<6.0.0)
20
21
  Requires-Dist: pytest-rerunfailures (>=15.1,<16.0)
22
+ Requires-Dist: pytest-timeout (>=2.4.0,<3.0.0)
21
23
  Requires-Dist: pytest-xdist (>=3.6.1,<4.0.0)
22
24
  Requires-Dist: python-dotenv (>=1.1.0,<2.0.0)
23
25
  Requires-Dist: python-gitlab (>=5.6.0,<6.0.0)
@@ -96,6 +98,7 @@ Optional defaults for pytest:
96
98
  codemie-test-harness config set PYTEST_MARKS "smoke"
97
99
  codemie-test-harness config set PYTEST_N 8
98
100
  codemie-test-harness config set PYTEST_RERUNS 2
101
+ codemie-test-harness config set PYTEST_COUNT 10 # For performance testing (optional)
99
102
  ```
100
103
 
101
104
  #### Integration Categories & Management
@@ -293,6 +296,80 @@ codemie-test-harness --git-env github run --marks git
293
296
  codemie-test-harness run --marks ui --headless
294
297
  ```
295
298
 
299
+ #### Performance and Load Testing
300
+
301
+ Run tests multiple times in parallel to simulate load and measure performance:
302
+
303
+ ```shell
304
+ # Performance test: Run test 50 times with 10 parallel workers
305
+ codemie-test-harness run --marks excel_generation --count 50 -n 10
306
+
307
+ # Heavy load test: 100 iterations with 20 workers
308
+ codemie-test-harness run --marks excel_generation --count 100 -n 20 -v
309
+
310
+ # Light load test with retries for stability
311
+ codemie-test-harness run --marks smoke --count 25 -n 5 --reruns 2
312
+
313
+ # Set default count in config for repeated use
314
+ codemie-test-harness config set PYTEST_COUNT 30
315
+ codemie-test-harness run --marks excel_generation -n 10 # Uses count=30 from config
316
+
317
+ # Override config default for a specific run
318
+ codemie-test-harness run --marks excel_generation --count 100 -n 20 # Overrides config
319
+ ```
320
+
321
+ **Note:** The `--count` parameter requires the `pytest-repeat` plugin, which is included in the dependencies.
322
+
323
+ #### Test Timeout Control
324
+
325
+ Control per-test timeout to prevent tests from running indefinitely. Tests exceeding the timeout will be **automatically terminated and marked as FAILED**.
326
+
327
+ **Configuration Priority**: CLI args → Environment variable → Config file → Default (300 seconds)
328
+
329
+ **Usage Examples:**
330
+
331
+ ```shell
332
+ # Via CLI argument (600 seconds = 10 minutes)
333
+ codemie-test-harness run --timeout 600 --marks smoke
334
+
335
+ # Via config file (persistent)
336
+ codemie-test-harness config set TEST_TIMEOUT 900
337
+ codemie-test-harness run --marks api
338
+
339
+ # Via environment variable
340
+ export TEST_TIMEOUT=300
341
+ codemie-test-harness run --marks smoke
342
+
343
+ # Disable timeout for debugging (use 0)
344
+ codemie-test-harness run --timeout 0 --marks smoke
345
+
346
+ # Override config default for specific run
347
+ codemie-test-harness config set TEST_TIMEOUT 600
348
+ codemie-test-harness run --timeout 1200 --marks slow # Uses 1200, not 600
349
+ ```
350
+
351
+ **Default**: 300 seconds (5 minutes) per test
352
+
353
+ **What Happens on Timeout?**
354
+
355
+ When a test exceeds the configured timeout:
356
+ 1. ✅ **Test is automatically terminated** - Execution stops immediately
357
+ 2. ✅ **Marked as FAILED** - Test result shows as failed with clear timeout message
358
+ 3. ✅ **Error details displayed** - Shows which test timed out and the configured limit
359
+ 4. ✅ **Remaining tests continue** - Other tests proceed normally
360
+ 5. ✅ **Stack trace captured** - Shows where the test was when timeout occurred
361
+
362
+ **Example timeout error output:**
363
+ ```
364
+ FAILED tests/test_slow_operation.py::test_data_processing - Failed: Timeout >300.0s
365
+ ```
366
+
367
+ **Notes:**
368
+ - Timeout applies to **individual test functions**, not the entire test run
369
+ - Useful for preventing hanging tests in CI/CD pipelines
370
+ - Consider increasing timeout for legitimate long-running operations (data processing, large file operations)
371
+ - Timeout of 0 disables the timeout (use for debugging only)
372
+
296
373
  #### Assistant Chat Interface
297
374
 
298
375
  Interact directly with CodeMie assistants through the CLI:
@@ -368,6 +445,9 @@ codemie-test-harness config vars data-management
368
445
 
369
446
  # Test execution with multiple overrides
370
447
  codemie-test-harness run --marks "smoke and not ui" -n 10 --reruns 3 --headless
448
+
449
+ # Performance testing with count parameter
450
+ codemie-test-harness run --marks excel_generation --count 50 -n 10
371
451
  ```
372
452
 
373
453
  #### Common Test Markers
@@ -508,9 +588,60 @@ pytest -m not_for_parallel_run --reruns 2
508
588
  # API tests
509
589
  pytest -n 10 -m "api and not not_for_parallel_run" --reruns 2
510
590
  pytest -m not_for_parallel_run --reruns 3
591
+
592
+ # Performance/Load testing: Run test multiple times in parallel
593
+ pytest -n 10 --count 50 -m excel_generation # Run 50 times with 10 workers
594
+ pytest -n 20 --count 100 -m smoke --reruns 2 # Heavy load with retries
595
+ ```
596
+
597
+ **Notes:**
598
+ - `--reruns 2` uses pytest-rerunfailures to improve resiliency in flaky environments
599
+ - `--count N` uses pytest-repeat to run each test N times (useful for performance/load testing)
600
+
601
+ #### Test Timeout Configuration
602
+
603
+ Tests have a configurable timeout to prevent hanging. Default is **300 seconds (5 minutes)** per test.
604
+
605
+ **Configure in .env file:**
606
+ ```properties
607
+ TEST_TIMEOUT=600 # 10 minutes
608
+ ```
609
+
610
+ **Override via pytest CLI:**
611
+ ```shell
612
+ # Set timeout for this run
613
+ pytest -n 10 -m smoke --timeout 900 # 15 minutes
614
+
615
+ # Disable timeout (debugging)
616
+ pytest -m slow_tests --timeout 0
617
+
618
+ # Use default from .env or pytest.ini
619
+ pytest -n 10 -m api # Uses TEST_TIMEOUT from .env or 300s default
620
+ ```
621
+
622
+ **Timeout Behavior:**
623
+
624
+ When a test exceeds the configured timeout:
625
+ - Test execution is **terminated immediately**
626
+ - Test is marked as **FAILED** with a timeout error message
627
+ - Stack trace shows where the test was when timeout occurred
628
+ - Remaining tests continue execution normally
629
+
630
+ **Example timeout failure:**
631
+ ```
632
+ ================================== FAILURES ===================================
633
+ _________________ test_slow_workflow_execution ________________
634
+
635
+ E Failed: Timeout >300.0s
636
+
637
+ tests/workflow/test_workflows.py:145: Failed
511
638
  ```
512
639
 
513
- Note: "--reruns 2" uses pytest-rerunfailures to improve resiliency in flaky environments.
640
+ **Best Practices:**
641
+ - Keep default timeout reasonable (5-10 minutes for E2E tests)
642
+ - Increase timeout for specific slow tests using `@pytest.mark.timeout(900)`
643
+ - Use timeout=0 only for debugging hanging tests
644
+ - Consider if a test legitimately needs > 5 minutes (optimize if possible)
514
645
 
515
646
  ### UI tests (Playwright)
516
647
 
@@ -69,6 +69,7 @@ Optional defaults for pytest:
69
69
  codemie-test-harness config set PYTEST_MARKS "smoke"
70
70
  codemie-test-harness config set PYTEST_N 8
71
71
  codemie-test-harness config set PYTEST_RERUNS 2
72
+ codemie-test-harness config set PYTEST_COUNT 10 # For performance testing (optional)
72
73
  ```
73
74
 
74
75
  #### Integration Categories & Management
@@ -266,6 +267,80 @@ codemie-test-harness --git-env github run --marks git
266
267
  codemie-test-harness run --marks ui --headless
267
268
  ```
268
269
 
270
+ #### Performance and Load Testing
271
+
272
+ Run tests multiple times in parallel to simulate load and measure performance:
273
+
274
+ ```shell
275
+ # Performance test: Run test 50 times with 10 parallel workers
276
+ codemie-test-harness run --marks excel_generation --count 50 -n 10
277
+
278
+ # Heavy load test: 100 iterations with 20 workers
279
+ codemie-test-harness run --marks excel_generation --count 100 -n 20 -v
280
+
281
+ # Light load test with retries for stability
282
+ codemie-test-harness run --marks smoke --count 25 -n 5 --reruns 2
283
+
284
+ # Set default count in config for repeated use
285
+ codemie-test-harness config set PYTEST_COUNT 30
286
+ codemie-test-harness run --marks excel_generation -n 10 # Uses count=30 from config
287
+
288
+ # Override config default for a specific run
289
+ codemie-test-harness run --marks excel_generation --count 100 -n 20 # Overrides config
290
+ ```
291
+
292
+ **Note:** The `--count` parameter requires the `pytest-repeat` plugin, which is included in the dependencies.
293
+
294
+ #### Test Timeout Control
295
+
296
+ Control per-test timeout to prevent tests from running indefinitely. Tests exceeding the timeout will be **automatically terminated and marked as FAILED**.
297
+
298
+ **Configuration Priority**: CLI args → Environment variable → Config file → Default (300 seconds)
299
+
300
+ **Usage Examples:**
301
+
302
+ ```shell
303
+ # Via CLI argument (600 seconds = 10 minutes)
304
+ codemie-test-harness run --timeout 600 --marks smoke
305
+
306
+ # Via config file (persistent)
307
+ codemie-test-harness config set TEST_TIMEOUT 900
308
+ codemie-test-harness run --marks api
309
+
310
+ # Via environment variable
311
+ export TEST_TIMEOUT=300
312
+ codemie-test-harness run --marks smoke
313
+
314
+ # Disable timeout for debugging (use 0)
315
+ codemie-test-harness run --timeout 0 --marks smoke
316
+
317
+ # Override config default for specific run
318
+ codemie-test-harness config set TEST_TIMEOUT 600
319
+ codemie-test-harness run --timeout 1200 --marks slow # Uses 1200, not 600
320
+ ```
321
+
322
+ **Default**: 300 seconds (5 minutes) per test
323
+
324
+ **What Happens on Timeout?**
325
+
326
+ When a test exceeds the configured timeout:
327
+ 1. ✅ **Test is automatically terminated** - Execution stops immediately
328
+ 2. ✅ **Marked as FAILED** - Test result shows as failed with clear timeout message
329
+ 3. ✅ **Error details displayed** - Shows which test timed out and the configured limit
330
+ 4. ✅ **Remaining tests continue** - Other tests proceed normally
331
+ 5. ✅ **Stack trace captured** - Shows where the test was when timeout occurred
332
+
333
+ **Example timeout error output:**
334
+ ```
335
+ FAILED tests/test_slow_operation.py::test_data_processing - Failed: Timeout >300.0s
336
+ ```
337
+
338
+ **Notes:**
339
+ - Timeout applies to **individual test functions**, not the entire test run
340
+ - Useful for preventing hanging tests in CI/CD pipelines
341
+ - Consider increasing timeout for legitimate long-running operations (data processing, large file operations)
342
+ - Timeout of 0 disables the timeout (use for debugging only)
343
+
269
344
  #### Assistant Chat Interface
270
345
 
271
346
  Interact directly with CodeMie assistants through the CLI:
@@ -341,6 +416,9 @@ codemie-test-harness config vars data-management
341
416
 
342
417
  # Test execution with multiple overrides
343
418
  codemie-test-harness run --marks "smoke and not ui" -n 10 --reruns 3 --headless
419
+
420
+ # Performance testing with count parameter
421
+ codemie-test-harness run --marks excel_generation --count 50 -n 10
344
422
  ```
345
423
 
346
424
  #### Common Test Markers
@@ -481,9 +559,60 @@ pytest -m not_for_parallel_run --reruns 2
481
559
  # API tests
482
560
  pytest -n 10 -m "api and not not_for_parallel_run" --reruns 2
483
561
  pytest -m not_for_parallel_run --reruns 3
562
+
563
+ # Performance/Load testing: Run test multiple times in parallel
564
+ pytest -n 10 --count 50 -m excel_generation # Run 50 times with 10 workers
565
+ pytest -n 20 --count 100 -m smoke --reruns 2 # Heavy load with retries
566
+ ```
567
+
568
+ **Notes:**
569
+ - `--reruns 2` uses pytest-rerunfailures to improve resiliency in flaky environments
570
+ - `--count N` uses pytest-repeat to run each test N times (useful for performance/load testing)
571
+
572
+ #### Test Timeout Configuration
573
+
574
+ Tests have a configurable timeout to prevent hanging. Default is **300 seconds (5 minutes)** per test.
575
+
576
+ **Configure in .env file:**
577
+ ```properties
578
+ TEST_TIMEOUT=600 # 10 minutes
579
+ ```
580
+
581
+ **Override via pytest CLI:**
582
+ ```shell
583
+ # Set timeout for this run
584
+ pytest -n 10 -m smoke --timeout 900 # 15 minutes
585
+
586
+ # Disable timeout (debugging)
587
+ pytest -m slow_tests --timeout 0
588
+
589
+ # Use default from .env or pytest.ini
590
+ pytest -n 10 -m api # Uses TEST_TIMEOUT from .env or 300s default
591
+ ```
592
+
593
+ **Timeout Behavior:**
594
+
595
+ When a test exceeds the configured timeout:
596
+ - Test execution is **terminated immediately**
597
+ - Test is marked as **FAILED** with a timeout error message
598
+ - Stack trace shows where the test was when timeout occurred
599
+ - Remaining tests continue execution normally
600
+
601
+ **Example timeout failure:**
602
+ ```
603
+ ================================== FAILURES ===================================
604
+ _________________ test_slow_workflow_execution ________________
605
+
606
+ E Failed: Timeout >300.0s
607
+
608
+ tests/workflow/test_workflows.py:145: Failed
484
609
  ```
485
610
 
486
- Note: "--reruns 2" uses pytest-rerunfailures to improve resiliency in flaky environments.
611
+ **Best Practices:**
612
+ - Keep default timeout reasonable (5-10 minutes for E2E tests)
613
+ - Increase timeout for specific slow tests using `@pytest.mark.timeout(900)`
614
+ - Use timeout=0 only for debugging hanging tests
615
+ - Consider if a test legitimately needs > 5 minutes (optimize if possible)
487
616
 
488
617
  ### UI tests (Playwright)
489
618
 
@@ -15,6 +15,8 @@ from .constants import (
15
15
  KEY_MARKS,
16
16
  KEY_XDIST_N,
17
17
  KEY_RERUNS,
18
+ KEY_COUNT,
19
+ KEY_TIMEOUT,
18
20
  KEY_AUTH_SERVER_URL,
19
21
  KEY_AUTH_CLIENT_ID,
20
22
  KEY_AUTH_CLIENT_SECRET,
@@ -22,12 +24,10 @@ from .constants import (
22
24
  KEY_CODEMIE_API_DOMAIN,
23
25
  KEY_AUTH_USERNAME,
24
26
  KEY_AUTH_PASSWORD,
25
- # integrations
26
27
  DEFAULT_MARKS,
27
28
  DEFAULT_XDIST_N,
28
29
  DEFAULT_RERUNS,
29
- AUTH_KEYS,
30
- INTEGRATION_KEYS,
30
+ DEFAULT_TIMEOUT,
31
31
  )
32
32
  from .utils import get_config_value, ensure_env_from_config
33
33
  from .runner import run_pytest
@@ -50,6 +50,18 @@ from .commands.marks_cmd import marks_cmd
50
50
  @click.option(
51
51
  "--reruns", envvar=KEY_RERUNS, type=int, help="Number of reruns for flaky tests"
52
52
  )
53
+ @click.option(
54
+ "--count",
55
+ envvar=KEY_COUNT,
56
+ type=int,
57
+ help="Number of times to repeat each test (requires pytest-repeat)",
58
+ )
59
+ @click.option(
60
+ "--timeout",
61
+ envvar=KEY_TIMEOUT,
62
+ type=int,
63
+ help="Per-test timeout in seconds (default: 300)",
64
+ )
53
65
  @click.option("--auth-server-url", envvar=KEY_AUTH_SERVER_URL, help="Auth server url")
54
66
  @click.option("--auth-client-id", envvar=KEY_AUTH_CLIENT_ID, help="Auth client id")
55
67
  @click.option(
@@ -68,6 +80,8 @@ def cli(
68
80
  marks: Optional[str],
69
81
  workers: Optional[int],
70
82
  reruns: Optional[int],
83
+ count: Optional[int],
84
+ timeout: Optional[int],
71
85
  auth_server_url: Optional[str],
72
86
  auth_client_id: Optional[str],
73
87
  auth_client_secret: Optional[str],
@@ -99,6 +113,16 @@ def cli(
99
113
  if reruns is not None
100
114
  else int(get_config_value(KEY_RERUNS, str(DEFAULT_RERUNS)))
101
115
  )
116
+ resolved_count = (
117
+ count
118
+ if count is not None
119
+ else (int(get_config_value(KEY_COUNT)) if get_config_value(KEY_COUNT) else None)
120
+ )
121
+ resolved_timeout = (
122
+ timeout
123
+ if timeout is not None
124
+ else int(get_config_value(KEY_TIMEOUT, str(DEFAULT_TIMEOUT)))
125
+ )
102
126
 
103
127
  # Ensure env vars. CLI args override env/config.
104
128
  provided = {
@@ -115,15 +139,27 @@ def cli(
115
139
  if v is not None and v != "":
116
140
  os.environ[k] = str(v)
117
141
  # populate any missing values from saved config
118
- ensure_env_from_config(AUTH_KEYS + INTEGRATION_KEYS)
142
+ ensure_env_from_config()
119
143
 
120
144
  ctx.obj.update(
121
- dict(marks=resolved_marks, workers=resolved_workers, reruns=resolved_reruns)
145
+ dict(
146
+ marks=resolved_marks,
147
+ workers=resolved_workers,
148
+ reruns=resolved_reruns,
149
+ count=resolved_count,
150
+ timeout=resolved_timeout,
151
+ )
122
152
  )
123
153
 
124
154
  # default behavior
125
155
  if ctx.invoked_subcommand is None and not ctx.resilient_parsing:
126
- run_pytest(resolved_workers, resolved_marks, resolved_reruns)
156
+ run_pytest(
157
+ resolved_workers,
158
+ resolved_marks,
159
+ resolved_reruns,
160
+ resolved_count,
161
+ resolved_timeout,
162
+ )
127
163
 
128
164
 
129
165
  # Register subcommands
@@ -10,6 +10,16 @@ from ..runner import run_pytest
10
10
  "-n", "workers", type=int, help="Override number of xdist workers for this run"
11
11
  )
12
12
  @click.option("--reruns", type=int, help="Override number of reruns for this run")
13
+ @click.option(
14
+ "--count",
15
+ type=int,
16
+ help="Number of times to repeat each test (requires pytest-repeat)",
17
+ )
18
+ @click.option(
19
+ "--timeout",
20
+ type=int,
21
+ help="Per-test timeout in seconds (overrides config/default)",
22
+ )
13
23
  @click.argument("extra", nargs=-1)
14
24
  @click.pass_context
15
25
  def run_cmd(
@@ -17,14 +27,27 @@ def run_cmd(
17
27
  marks: Optional[str],
18
28
  workers: Optional[int],
19
29
  reruns: Optional[int],
30
+ count: Optional[int],
31
+ timeout: Optional[int],
20
32
  extra: Tuple[str, ...],
21
33
  ):
22
34
  """Run pytest with configured options.
23
35
 
24
36
  Example: codemie-test-harness run --marks "smoke and not ui" -n 8 --reruns 2 -k keyword
37
+ Example with repeat: codemie-test-harness run --marks excel_generation --count 50 -n 10
38
+ Example with timeout: codemie-test-harness run --marks slow --timeout 600 -n 4
25
39
  """
26
40
  resolved_marks = marks or ctx.obj.get("marks")
27
41
  resolved_workers = workers if workers is not None else ctx.obj.get("workers")
28
42
  resolved_reruns = reruns if reruns is not None else ctx.obj.get("reruns")
43
+ resolved_count = count if count is not None else ctx.obj.get("count")
44
+ resolved_timeout = timeout if timeout is not None else ctx.obj.get("timeout")
29
45
 
30
- run_pytest(int(resolved_workers), str(resolved_marks), int(resolved_reruns), extra)
46
+ run_pytest(
47
+ int(resolved_workers),
48
+ str(resolved_marks),
49
+ int(resolved_reruns),
50
+ resolved_count,
51
+ resolved_timeout,
52
+ extra,
53
+ )
@@ -19,6 +19,7 @@ KEY_CODEMIE_API_DOMAIN = "CODEMIE_API_DOMAIN"
19
19
  KEY_MARKS = "PYTEST_MARKS"
20
20
  KEY_XDIST_N = "PYTEST_N"
21
21
  KEY_RERUNS = "PYTEST_RERUNS"
22
+ KEY_COUNT = "PYTEST_COUNT"
22
23
 
23
24
  # === COMPLETE INTEGRATION CREDENTIALS KEYS ===
24
25
  # Version Control Systems (GitLab, GitHub)
@@ -49,7 +49,12 @@ def resolve_tests_path_and_root() -> tuple[str, str]:
49
49
 
50
50
 
51
51
  def build_pytest_cmd(
52
- workers: int, marks: str, reruns: int, extra: Iterable[str] | None = None
52
+ workers: int,
53
+ marks: str,
54
+ reruns: int,
55
+ count: int | None = None,
56
+ timeout: int | None = None,
57
+ extra: Iterable[str] | None = None,
53
58
  ) -> tuple[List[str], str]:
54
59
  tests_path, root_dir = resolve_tests_path_and_root()
55
60
  cmd = [sys.executable, "-m", "pytest", tests_path]
@@ -59,6 +64,10 @@ def build_pytest_cmd(
59
64
  cmd += ["-m", str(marks)]
60
65
  if reruns and int(reruns) > 0:
61
66
  cmd += ["--reruns", str(reruns)]
67
+ if count and int(count) > 0:
68
+ cmd += ["--count", str(count)]
69
+ if timeout and int(timeout) > 0:
70
+ cmd += ["--timeout", str(timeout)]
62
71
  if extra:
63
72
  cmd += list(extra)
64
73
  return cmd, root_dir
@@ -97,11 +106,16 @@ def validate_marks_expression(marks: str) -> None:
97
106
 
98
107
 
99
108
  def run_pytest(
100
- workers: int, marks: str, reruns: int, extra: Iterable[str] | None = None
109
+ workers: int,
110
+ marks: str,
111
+ reruns: int,
112
+ count: int | None = None,
113
+ timeout: int | None = None,
114
+ extra: Iterable[str] | None = None,
101
115
  ) -> None:
102
116
  # Validate marks before running pytest
103
117
  validate_marks_expression(marks)
104
118
 
105
- cmd, root_dir = build_pytest_cmd(workers, marks, reruns, extra)
119
+ cmd, root_dir = build_pytest_cmd(workers, marks, reruns, count, timeout, extra)
106
120
  CONSOLE.print(f"[cyan]Running:[/] {' '.join(cmd)} (cwd={root_dir})")
107
121
  raise SystemExit(subprocess.call(cmd, cwd=root_dir))
@@ -37,9 +37,19 @@ def set_config_value(key: str, value: Any) -> None:
37
37
  save_config(cfg)
38
38
 
39
39
 
40
- def ensure_env_from_config(keys: list[str]) -> None:
41
- # Populate missing env vars from config file if present
40
+ def ensure_env_from_config(keys: Optional[list[str]] = None) -> None:
41
+ """
42
+ Populate missing environment variables from config file.
43
+
44
+ Args:
45
+ keys: Optional list of specific keys to load. If None, loads all keys from config.
46
+ """
42
47
  cfg = load_config()
48
+
49
+ # If no specific keys provided, load all keys from config
50
+ if keys is None:
51
+ keys = list(cfg.keys())
52
+
43
53
  for k in keys:
44
54
  if k not in os.environ and k in cfg:
45
55
  os.environ[k] = str(cfg[k])
@@ -1,5 +1,8 @@
1
1
  [pytest]
2
2
  addopts = -v
3
+ timeout = 300
4
+ timeout_method = signal
5
+ timeout_func_only = true
3
6
  filterwarnings =
4
7
  ignore::pytest.PytestUnknownMarkWarning
5
8
  ignore::urllib3.exceptions.InsecureRequestWarning
@@ -436,7 +436,9 @@ def test_excel_tool_extended_functionality(
436
436
  - Multi-sheet comprehensive analysis
437
437
 
438
438
  """
439
- assistant_instance = assistant()
439
+ assistant_instance = assistant(
440
+ system_prompt="You have all required information in initial prompt. Do not ask additional questions and proceed with request."
441
+ )
440
442
 
441
443
  uploaded_file = assistant_utils.upload_file_to_chat(
442
444
  FILES_PATH / "test_extended.xlsx"
@@ -490,3 +492,17 @@ def test_docx_tool_extended_functionality(
490
492
 
491
493
  assert_tool_triggered(Default.DOCX_TOOL, triggered_tools)
492
494
  similarity_check.check_similarity(response, expected_response)
495
+
496
+
497
+ @pytest.mark.assistant
498
+ # @pytest.mark.api
499
+ @pytest.mark.smoke
500
+ @pytest.mark.excel_generation
501
+ def test_excel_file_generation(assistant_utils, assistant, similarity_check):
502
+ assistant_instance = assistant()
503
+
504
+ response = assistant_utils.ask_assistant(
505
+ assistant_instance, "Generate excel with 5 sheets with random data"
506
+ )
507
+
508
+ similarity_check.check_similarity(response, "expected_response_here")
@@ -69,5 +69,5 @@ def test_assistant_with_sonar_tools(
69
69
  assistant, prompt, minimal_response=False
70
70
  )
71
71
 
72
- assert_tool_triggered(tool_name, triggered_tools)
72
+ assert_tool_triggered(CodeBaseTool.SONAR, triggered_tools)
73
73
  similarity_check.check_similarity(response, expected)