codemie-test-harness 0.1.145__tar.gz → 0.1.147__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 (332) hide show
  1. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/PKG-INFO +2 -2
  2. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/conftest.py +23 -8
  3. codemie_test_harness-0.1.147/codemie_test_harness/tests/conversations/test_conversations_endpoints.py +123 -0
  4. codemie_test_harness-0.1.147/codemie_test_harness/tests/utils/conversation_utils.py +17 -0
  5. codemie_test_harness-0.1.147/codemie_test_harness/tests/utils/env_utils.py +125 -0
  6. codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/__init__.py +0 -0
  7. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/pyproject.toml +2 -2
  8. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/README.md +0 -0
  9. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/.env +0 -0
  10. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/__init__.py +0 -0
  11. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/__init__.py +0 -0
  12. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/cli.py +0 -0
  13. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/commands/__init__.py +0 -0
  14. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/commands/config_cmd.py +0 -0
  15. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/commands/run_cmd.py +0 -0
  16. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/constants.py +0 -0
  17. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/runner.py +0 -0
  18. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/utils.py +0 -0
  19. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/pytest.ini +0 -0
  20. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/__init__.py +0 -0
  21. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/__init__.py +0 -0
  22. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/__init__.py +0 -0
  23. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_code_datasource.py +0 -0
  24. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_confluence_datasource.py +0 -0
  25. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_file_indexing.py +0 -0
  26. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_google_datasource.py +0 -0
  27. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_jira_datasource.py +0 -0
  28. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/default_integrations/__init__.py +0 -0
  29. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool.py +0 -0
  30. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  31. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_with_datasource.py +0 -0
  32. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/test_assistants.py +0 -0
  33. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/__init__.py +0 -0
  34. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/ado/__init__.py +0 -0
  35. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_test_plan_tools.py +0 -0
  36. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_wiki_tools.py +0 -0
  37. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_work_item_tools.py +0 -0
  38. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/cloud/__init__.py +0 -0
  39. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/cloud/test_cloud_tools.py +0 -0
  40. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/codebase/__init__.py +0 -0
  41. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/codebase/test_codebase_tools.py +0 -0
  42. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/datamanagement/__init__.py +0 -0
  43. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/datamanagement/test_assistant_with_data_management_tools.py +0 -0
  44. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/filemanagement/__init__.py +0 -0
  45. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/filemanagement/test_assistant_with_file_management_tools.py +0 -0
  46. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/git/__init__.py +0 -0
  47. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/git/test_assistant_with_git_tools.py +0 -0
  48. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/mcp/__init__.py +0 -0
  49. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/mcp/test_cli_mcp_server.py +0 -0
  50. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/mcp/test_mcp_servers.py +0 -0
  51. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/notification/__init__.py +0 -0
  52. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/notification/test_assistant_notification_tools.py +0 -0
  53. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/openapi/__init__.py +0 -0
  54. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/openapi/test_assistant_with_open_api_tools.py +0 -0
  55. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/plugin/__init__.py +0 -0
  56. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_development_plugin.py +0 -0
  57. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_plugin_and_mcp_servers.py +0 -0
  58. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/project_management/__init__.py +0 -0
  59. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/project_management/test_assistant_pm_tools.py +0 -0
  60. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/research/__init__.py +0 -0
  61. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/research/test_assistant_research_tools.py +0 -0
  62. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/servicenow/__init__.py +0 -0
  63. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/servicenow/test_servicenow_tools.py +0 -0
  64. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/vcs/__init__.py +0 -0
  65. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/vcs/test_assistant_with_vcs_tools.py +0 -0
  66. {codemie_test_harness-0.1.145/codemie_test_harness/tests/e2e → codemie_test_harness-0.1.147/codemie_test_harness/tests/conversations}/__init__.py +0 -0
  67. {codemie_test_harness-0.1.145/codemie_test_harness/tests/enums → codemie_test_harness-0.1.147/codemie_test_harness/tests/e2e}/__init__.py +0 -0
  68. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/e2e/test_e2e.py +0 -0
  69. {codemie_test_harness-0.1.145/codemie_test_harness/tests/integrations/project → codemie_test_harness-0.1.147/codemie_test_harness/tests/enums}/__init__.py +0 -0
  70. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/enums/integrations.py +0 -0
  71. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/enums/model_types.py +0 -0
  72. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/enums/tools.py +0 -0
  73. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/__init__.py +0 -0
  74. {codemie_test_harness-0.1.145/codemie_test_harness/tests/integrations/user → codemie_test_harness-0.1.147/codemie_test_harness/tests/integrations/project}/__init__.py +0 -0
  75. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/project/test_default_integrations.py +0 -0
  76. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/project/test_project_integrations.py +0 -0
  77. {codemie_test_harness-0.1.145/codemie_test_harness/tests/llm → codemie_test_harness-0.1.147/codemie_test_harness/tests/integrations/user}/__init__.py +0 -0
  78. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/user/test_default_integrations.py +0 -0
  79. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/user/test_user_integrations.py +0 -0
  80. {codemie_test_harness-0.1.145/codemie_test_harness/tests/llm/assistants → codemie_test_harness-0.1.147/codemie_test_harness/tests/llm}/__init__.py +0 -0
  81. {codemie_test_harness-0.1.145/codemie_test_harness/tests/providers → codemie_test_harness-0.1.147/codemie_test_harness/tests/llm/assistants}/__init__.py +0 -0
  82. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/llm/assistants/test_llm.py +0 -0
  83. {codemie_test_harness-0.1.145/codemie_test_harness/tests/service → codemie_test_harness-0.1.147/codemie_test_harness/tests/providers}/__init__.py +0 -0
  84. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/providers/test_providers_endpoints.py +0 -0
  85. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/__init__.py +0 -0
  86. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/test_search_assistant.py +0 -0
  87. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/test_search_datasource.py +0 -0
  88. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/test_search_integration.py +0 -0
  89. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/test_search_workflow.py +0 -0
  90. {codemie_test_harness-0.1.145/codemie_test_harness/tests/test_data → codemie_test_harness-0.1.147/codemie_test_harness/tests/service}/__init__.py +0 -0
  91. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_assistant_service.py +0 -0
  92. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_datasource_service.py +0 -0
  93. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_integration_service.py +0 -0
  94. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_llm_service.py +0 -0
  95. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_task_service.py +0 -0
  96. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_user_service.py +0 -0
  97. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_workflow_execution_service.py +0 -0
  98. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_workflow_service.py +0 -0
  99. {codemie_test_harness-0.1.145/codemie_test_harness/tests/test_data/direct_tools → codemie_test_harness-0.1.147/codemie_test_harness/tests/test_data}/__init__.py +0 -0
  100. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/ado_test_plan_tools_test_data.py +0 -0
  101. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/ado_wiki_tools_test_data.py +0 -0
  102. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/ado_work_item_tools_test_data.py +0 -0
  103. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/cloud_tools_test_data.py +0 -0
  104. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/codebase_tools_test_data.py +0 -0
  105. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/data_management_tools_test_data.py +0 -0
  106. {codemie_test_harness-0.1.145/codemie_test_harness/tests/ui → codemie_test_harness-0.1.147/codemie_test_harness/tests/test_data/direct_tools}/__init__.py +0 -0
  107. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/ado_test_plan_tools_test_data.py +0 -0
  108. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/ado_wiki_tools_test_data.py +0 -0
  109. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/ado_work_item_tools_test_data.py +0 -0
  110. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/cloud_tools_test_data.py +0 -0
  111. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/codebase_tools_test_data.py +0 -0
  112. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/data_management_tools_test_data.py +0 -0
  113. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/direct_tools_test_data.py +0 -0
  114. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/file_management_tools_test_data.py +0 -0
  115. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/notification_tools_test_data.py +0 -0
  116. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/open_api_tools_test_data.py +0 -0
  117. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/project_management_tools_test_data.py +0 -0
  118. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/research_tools_test_data.py +0 -0
  119. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/servicenow_tools_test_data.py +0 -0
  120. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/direct_tools/vcs_tools_test_data.py +0 -0
  121. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/file_management_tools_test_data.py +0 -0
  122. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/file_test_data.py +0 -0
  123. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/large-files/large_file.txt +0 -0
  124. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/provider_payload.json +0 -0
  125. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.csv +0 -0
  126. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.docx +0 -0
  127. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.gif +0 -0
  128. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.ini +0 -0
  129. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.jpeg +0 -0
  130. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.jpg +0 -0
  131. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.json +0 -0
  132. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.pdf +0 -0
  133. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.png +0 -0
  134. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.pptx +0 -0
  135. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.txt +0 -0
  136. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.vtt +0 -0
  137. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.xlsx +0 -0
  138. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.xml +0 -0
  139. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.yaml +0 -0
  140. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/git_tools_test_data.py +0 -0
  141. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/google_datasource_test_data.py +0 -0
  142. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/index_test_data.py +0 -0
  143. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/integrations_test_data.py +0 -0
  144. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/llm_test_data.py +0 -0
  145. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/mcp_server_test_data.py +0 -0
  146. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/notification_tools_test_data.py +0 -0
  147. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/open_api_tools_test_data.py +0 -0
  148. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/openapi.json +0 -0
  149. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/output_schema_test_data.py +0 -0
  150. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/plugin_tools_test_data.py +0 -0
  151. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/pm_tools_test_data.py +0 -0
  152. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/project_management_test_data.py +0 -0
  153. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/research_tools_test_data.py +0 -0
  154. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/servicenow_tools_test_data.py +0 -0
  155. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/vcs_tools_test_data.py +0 -0
  156. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_assistant_id.yaml +0 -0
  157. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_assistant_in_state.yaml +0 -0
  158. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_data_source.yaml +0 -0
  159. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_state.yaml +0 -0
  160. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_tool.yaml +0 -0
  161. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_yaml.yaml +0 -0
  162. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_yaml_format.yaml +0 -0
  163. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_assistant_id.yaml +0 -0
  164. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_assistant_tools_name.yaml +0 -0
  165. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_backoff_factor.yaml +0 -0
  166. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_initial_interval.yaml +0 -0
  167. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_max_attempts.yaml +0 -0
  168. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_max_interval.yaml +0 -0
  169. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states.yaml +0 -0
  170. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_id.yaml +0 -0
  171. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next.yaml +0 -0
  172. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_condition_expression.yaml +0 -0
  173. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_condition_otherwise.yaml +0 -0
  174. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_condition_then.yaml +0 -0
  175. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_cases.yaml +0 -0
  176. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_cases_condition.yaml +0 -0
  177. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_cases_state_id.yaml +0 -0
  178. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_default.yaml +0 -0
  179. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_backoff_factor.yaml +0 -0
  180. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_initial_interval.yaml +0 -0
  181. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_max_attempts.yaml +0 -0
  182. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_max_interval.yaml +0 -0
  183. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_system_prompt.yaml +0 -0
  184. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_tools_id.yaml +0 -0
  185. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_tools_name.yaml +0 -0
  186. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow_validation_messages.py +0 -0
  187. {codemie_test_harness-0.1.145/codemie_test_harness/tests/ui/pageobject → codemie_test_harness-0.1.147/codemie_test_harness/tests/ui}/__init__.py +0 -0
  188. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/conftest.py +0 -0
  189. {codemie_test_harness-0.1.145/codemie_test_harness/tests/ui/pageobject/assistants → codemie_test_harness-0.1.147/codemie_test_harness/tests/ui/pageobject}/__init__.py +0 -0
  190. {codemie_test_harness-0.1.145/codemie_test_harness/tests/utils → codemie_test_harness-0.1.147/codemie_test_harness/tests/ui/pageobject/assistants}/__init__.py +0 -0
  191. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/assistants/assistants_page.py +0 -0
  192. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/base_page.py +0 -0
  193. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/__init__.py +0 -0
  194. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/execution_history_row.py +0 -0
  195. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/header.py +0 -0
  196. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/pop_up.py +0 -0
  197. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/workflow_card.py +0 -0
  198. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/workflow_execution_history_item.py +0 -0
  199. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/workflow_execution_state.py +0 -0
  200. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/workflow_sidebar.py +0 -0
  201. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/workflow_state_card.py +0 -0
  202. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/login_page.py +0 -0
  203. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/__init__.py +0 -0
  204. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/base_workflow_form_page.py +0 -0
  205. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/create_workflow_page.py +0 -0
  206. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/edit_workflow_page.py +0 -0
  207. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_details_page.py +0 -0
  208. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_executions_page.py +0 -0
  209. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_template_details.py +0 -0
  210. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_templates_page.py +0 -0
  211. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/workflows_page.py +0 -0
  212. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_create_workflow.py +0 -0
  213. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_edit_workflow.py +0 -0
  214. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_workflow_details.py +0 -0
  215. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_workflow_executions_page.py +0 -0
  216. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_workflow_templates.py +0 -0
  217. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_workflows.py +0 -0
  218. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow → codemie_test_harness-0.1.147/codemie_test_harness/tests/utils}/__init__.py +0 -0
  219. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/assistant_utils.py +0 -0
  220. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/aws_parameters_store.py +0 -0
  221. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/base_utils.py +0 -0
  222. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/client_factory.py +0 -0
  223. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/constants.py +0 -0
  224. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/datasource_utils.py +0 -0
  225. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/file_utils.py +0 -0
  226. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/gitbud_utils.py +0 -0
  227. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/http_utils.py +0 -0
  228. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/integration_utils.py +0 -0
  229. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/json_utils.py +0 -0
  230. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/llm_utils.py +0 -0
  231. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/logger_util.py +0 -0
  232. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/notification_utils.py +0 -0
  233. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/provider_utils.py +0 -0
  234. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/pytest_utils.py +0 -0
  235. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/search_utils.py +0 -0
  236. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/similarity_check.py +0 -0
  237. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/user_utils.py +0 -0
  238. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/workflow_utils.py +0 -0
  239. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/yaml_utils.py +0 -0
  240. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow}/__init__.py +0 -0
  241. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/ado → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools}/__init__.py +0 -0
  242. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/cloud → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/ado}/__init__.py +0 -0
  243. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_test_plan_tools.py +0 -0
  244. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_wiki_tools.py +0 -0
  245. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_work_item_tools.py +0 -0
  246. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/codebase → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/cloud}/__init__.py +0 -0
  247. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/cloud/test_workflow_with_assistant_cloud_tools.py +0 -0
  248. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/data_management → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/codebase}/__init__.py +0 -0
  249. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/codebase/test_worfklow_with_assistant_codebase_tools.py +0 -0
  250. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/default_integrations → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/data_management}/__init__.py +0 -0
  251. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/data_management/test_workflow_with_assistant_with_data_management_tools.py +0 -0
  252. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/git → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/default_integrations}/__init__.py +0 -0
  253. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool.py +0 -0
  254. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  255. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +0 -0
  256. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/file_management/__init__.py +0 -0
  257. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/file_management/test_workflow_with_assistant_with_file_management_tools.py +0 -0
  258. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/mcp → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/git}/__init__.py +0 -0
  259. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py +0 -0
  260. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/notification → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/mcp}/__init__.py +0 -0
  261. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/mcp/test_workflow_with_assistant_with_mcp_server.py +0 -0
  262. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/plugin → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/notification}/__init__.py +0 -0
  263. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/notification/test_workflow_with_assistant_notification_tools.py +0 -0
  264. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/open_api/__init__.py +0 -0
  265. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/open_api/test_workflow_with_assistant_with_open_api_tools.py +0 -0
  266. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/project_management → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/plugin}/__init__.py +0 -0
  267. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_development_plugin.py +0 -0
  268. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_plugin_and_mcp_servers.py +0 -0
  269. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/research → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/project_management}/__init__.py +0 -0
  270. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/project_management/test_workflow_with_assistant_pm_tools.py +0 -0
  271. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/servicenow → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/research}/__init__.py +0 -0
  272. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/research/test_workflow_with_assistant_research_tools.py +0 -0
  273. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/assistant_tools/vcs → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/servicenow}/__init__.py +0 -0
  274. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +0 -0
  275. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/config_validation → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/vcs}/__init__.py +0 -0
  276. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/assistant_tools/vcs/workflow_with_assistant_vcs_tools.py +0 -0
  277. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/direct_tools_calling → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/config_validation}/__init__.py +0 -0
  278. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/config_validation/test_config_validation.py +0 -0
  279. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/direct_tools_calling}/__init__.py +0 -0
  280. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations}/__init__.py +0 -0
  281. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool.py +0 -0
  282. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  283. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_test_plan_tools.py +0 -0
  284. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_wiki_tools.py +0 -0
  285. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_work_item_tools.py +0 -0
  286. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_cloud_tools.py +0 -0
  287. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_codebase_tools.py +0 -0
  288. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools.py +0 -0
  289. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_file_management_tools.py +0 -0
  290. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_notification_tools.py +0 -0
  291. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_open_api_tools.py +0 -0
  292. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_plugin_tools.py +0 -0
  293. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_project_management_tools.py +0 -0
  294. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_research_tools.py +0 -0
  295. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_servicenow_tools.py +0 -0
  296. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_vcs_tools.py +0 -0
  297. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/test_workflows.py +0 -0
  298. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools}/__init__.py +0 -0
  299. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado}/__init__.py +0 -0
  300. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_test_plan_tools.py +0 -0
  301. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_wiki_tools.py +0 -0
  302. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_work_item_tools.py +0 -0
  303. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud}/__init__.py +0 -0
  304. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud/test_workflow_with_cloud_tools.py +0 -0
  305. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/__init__.py +0 -0
  306. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/test_workflow_with_codebase_tools.py +0 -0
  307. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/__init__.py +0 -0
  308. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/test_workflow_with_data_management_tools.py +0 -0
  309. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools/git → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations}/__init__.py +0 -0
  310. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool.py +0 -0
  311. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  312. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +0 -0
  313. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/__init__.py +0 -0
  314. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/test_workflow_with_file_management_tools.py +0 -0
  315. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/git}/__init__.py +0 -0
  316. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py +0 -0
  317. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp}/__init__.py +0 -0
  318. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp/test_workflow_with_mcp_server.py +0 -0
  319. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/notification/__init__.py +0 -0
  320. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/notification/test_workflow_with_notification_tools.py +0 -0
  321. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/open_api/__init__.py +0 -0
  322. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/open_api/test_workflow_with_open_api_tools.py +0 -0
  323. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools/research → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin}/__init__.py +0 -0
  324. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_development_plugin.py +0 -0
  325. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_plugin_and_mcp_servers.py +0 -0
  326. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/project_management/__init__.py +0 -0
  327. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/project_management/test_workflow_with_project_management_tools.py +0 -0
  328. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/research}/__init__.py +0 -0
  329. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/research/test_workflow_with_research_tools.py +0 -0
  330. {codemie_test_harness-0.1.145/codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs → codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow}/__init__.py +0 -0
  331. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +0 -0
  332. {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/test_workflow_with_vcs_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: codemie-test-harness
3
- Version: 0.1.145
3
+ Version: 0.1.147
4
4
  Summary: Autotest for CodeMie backend and UI
5
5
  Author: Anton Yeromin
6
6
  Author-email: anton_yeromin@epam.com
@@ -13,7 +13,7 @@ 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.145)
16
+ Requires-Dist: codemie-sdk-python (==0.1.147)
17
17
  Requires-Dist: pytest (>=8.4.1,<9.0.0)
18
18
  Requires-Dist: pytest-playwright (>=0.7.0,<0.8.0)
19
19
  Requires-Dist: pytest-reportportal (>=5.5.2,<6.0.0)
@@ -33,6 +33,7 @@ from codemie_test_harness.tests.utils.aws_parameters_store import CredentialsUti
33
33
  from codemie_test_harness.tests.utils.base_utils import get_random_name, wait_for_entity
34
34
  from codemie_test_harness.tests.utils.client_factory import get_client
35
35
  from codemie_test_harness.tests.utils.constants import TESTS_PATH
36
+ from codemie_test_harness.tests.utils.conversation_utils import ConversationUtils
36
37
  from codemie_test_harness.tests.utils.datasource_utils import DataSourceUtils
37
38
  from codemie_test_harness.tests.utils.gitbud_utils import GitBudUtils
38
39
  from codemie_test_harness.tests.utils.integration_utils import IntegrationUtils
@@ -63,13 +64,15 @@ def pytest_configure(config):
63
64
  """
64
65
  from codemie_test_harness.cli.runner import resolve_tests_path_and_root
65
66
  from codemie_test_harness.tests.utils.aws_parameters_store import AwsParameterStore
67
+ from codemie_test_harness.tests.utils.env_utils import EnvManager
66
68
 
67
69
  # Resolve the root directory and .env file path
68
70
  _, root_dir = resolve_tests_path_and_root()
69
71
  env_file_path = Path(root_dir) / ".env"
70
72
 
71
73
  # Load initial .env file
72
- load_dotenv(env_file_path)
74
+ if env_file_path.exists():
75
+ load_dotenv(env_file_path)
73
76
 
74
77
  # Check if AWS credentials are available for parameter store
75
78
  if os.getenv("AWS_ACCESS_KEY") and os.getenv("AWS_SECRET_KEY"):
@@ -84,12 +87,10 @@ def pytest_configure(config):
84
87
  f"/codemie/autotests/dotenv/{os.getenv('ENV')}"
85
88
  )
86
89
 
87
- # Write the AWS parameters to .env file
88
- with open(env_file_path, "w") as file:
89
- file.write(dotenv)
90
-
91
- # Reload .env file with AWS parameters
92
- load_dotenv(env_file_path)
90
+ # Safely update .env file with new content
91
+ EnvManager.update_env_file_safely(
92
+ env_file_path=env_file_path, new_content=dotenv, clear_old_vars=True
93
+ )
93
94
 
94
95
 
95
96
  def pytest_unconfigure(config):
@@ -232,6 +233,11 @@ def llm_utils(client):
232
233
  return LLMUtils(client)
233
234
 
234
235
 
236
+ @pytest.fixture(scope="session")
237
+ def conversation_utils(client):
238
+ return ConversationUtils(client)
239
+
240
+
235
241
  @pytest.fixture(scope="function")
236
242
  def git_integration(integration_utils):
237
243
  integration = integration_utils.create_integration(
@@ -465,7 +471,7 @@ def kb_context():
465
471
 
466
472
 
467
473
  @pytest.fixture(scope="function")
468
- def assistant(default_llm, assistant_utils):
474
+ def assistant(default_llm, assistant_utils, conversation_utils):
469
475
  """Create assistant"""
470
476
  created_assistant = None
471
477
 
@@ -511,6 +517,11 @@ def assistant(default_llm, assistant_utils):
511
517
  yield _create_assistant
512
518
  if created_assistant:
513
519
  assistant_utils.delete_assistant(created_assistant)
520
+ conversations = conversation_utils.get_conversation_by_assistant_id(
521
+ created_assistant["id"]
522
+ )
523
+ for conversation in conversations:
524
+ conversation_utils.delete_conversation(conversation.id)
514
525
 
515
526
 
516
527
  @pytest.fixture(scope="function")
@@ -860,6 +871,10 @@ def pytest_sessionfinish(session):
860
871
  if prefix in assistant.name:
861
872
  client.assistants.delete(assistant_id=assistant.id)
862
873
  sleep(clean_up_timeout)
874
+ conversations = client.conversations.list_by_assistant_id(assistant.id)
875
+ for conversation in conversations:
876
+ client.conversations.delete(conversation.id)
877
+ sleep(clean_up_timeout)
863
878
  workflows = client.workflows.list(
864
879
  filters={"name": autotest_entity_prefix}, per_page=200
865
880
  )
@@ -0,0 +1,123 @@
1
+ import pytest
2
+ from codemie_sdk.models.conversation import Conversation, ConversationDetails
3
+ from hamcrest import (
4
+ assert_that,
5
+ has_length,
6
+ instance_of,
7
+ all_of,
8
+ has_property,
9
+ greater_than_or_equal_to,
10
+ has_item,
11
+ equal_to,
12
+ has_entry,
13
+ )
14
+
15
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
16
+
17
+
18
+ @pytest.mark.regression
19
+ def test_list_conversations(assistant, assistant_utils, conversation_utils):
20
+ assistant = assistant()
21
+ assistant_utils.ask_assistant(assistant, f"prompt {get_random_name()}")
22
+
23
+ conversations = conversation_utils.list_conversations()
24
+
25
+ assert_that(conversations, instance_of(list))
26
+ assert_that(conversations, has_length(greater_than_or_equal_to(1)))
27
+
28
+ conversation = conversations[0]
29
+ assert_that(
30
+ conversation,
31
+ all_of(
32
+ instance_of(Conversation),
33
+ has_property("id"),
34
+ has_property("name"),
35
+ has_property("folder"),
36
+ has_property("pinned"),
37
+ has_property("date"),
38
+ has_property("assistant_ids", instance_of(list)),
39
+ has_property("initial_assistant_id"),
40
+ ),
41
+ )
42
+
43
+
44
+ @pytest.mark.regression
45
+ def test_get_specific_conversation(assistant, assistant_utils, conversation_utils):
46
+ prompt = f"prompt {get_random_name()}"
47
+ assistant = assistant()
48
+
49
+ assistant_utils.ask_assistant(assistant, prompt)
50
+
51
+ conversations = conversation_utils.list_conversations()
52
+
53
+ first_conversation = conversations[0]
54
+ conversation = conversation_utils.get_conversation_by_id(first_conversation.id)
55
+ assert_that(
56
+ conversation,
57
+ all_of(
58
+ instance_of(ConversationDetails),
59
+ has_property("id", first_conversation.id),
60
+ has_property("conversation_name", prompt),
61
+ has_property("initial_assistant_id", assistant.id),
62
+ ),
63
+ )
64
+
65
+
66
+ @pytest.mark.regression
67
+ def test_get_conversation_by_assistant_id(
68
+ assistant, assistant_utils, conversation_utils
69
+ ):
70
+ prompt = f"prompt {get_random_name()}"
71
+ assistant = assistant()
72
+
73
+ assistant_utils.ask_assistant(assistant, prompt)
74
+ conversation = conversation_utils.get_conversation_by_assistant_id(assistant.id)
75
+ assert_that(
76
+ conversation[0],
77
+ all_of(
78
+ instance_of(Conversation),
79
+ has_property("id", conversation[0].id),
80
+ has_property("name", prompt),
81
+ has_property("assistant_ids", has_item(assistant.id)),
82
+ has_property("initial_assistant_id", assistant.id),
83
+ ),
84
+ )
85
+
86
+
87
+ @pytest.mark.regression
88
+ def test_delete_conversation(assistant, assistant_utils, conversation_utils):
89
+ prompt = f"prompt {get_random_name()}"
90
+ assistant = assistant()
91
+
92
+ assistant_utils.ask_assistant(assistant, prompt)
93
+ conversation = conversation_utils.get_conversation_by_assistant_id(assistant.id)
94
+
95
+ delete_response = conversation_utils.delete_conversation(conversation[0].id)
96
+ assert_that(
97
+ delete_response["message"],
98
+ equal_to("Specified conversation removed"),
99
+ "Conversation delete response is not as expected.",
100
+ )
101
+
102
+
103
+ @pytest.mark.regression
104
+ def test_get_non_existent_conversation(assistant, assistant_utils, conversation_utils):
105
+ invalid_id = get_random_name()
106
+ with pytest.raises(Exception) as exc_info:
107
+ conversation_utils.get_conversation_by_id(invalid_id)
108
+
109
+ error_response = exc_info.value.response.json()
110
+ assert_that(
111
+ error_response["error"],
112
+ all_of(
113
+ has_entry("message", "Conversation not found"),
114
+ has_entry(
115
+ "details",
116
+ f"The conversation with ID [{invalid_id}] could not be found in the system.",
117
+ ),
118
+ has_entry(
119
+ "help",
120
+ "Please verify the conversation ID and try again. If you believe this is an error, contact support.",
121
+ ),
122
+ ),
123
+ )
@@ -0,0 +1,17 @@
1
+ import requests
2
+
3
+ from codemie_test_harness.tests.utils.base_utils import BaseUtils
4
+
5
+
6
+ class ConversationUtils(BaseUtils):
7
+ def list_conversations(self):
8
+ return self.client.conversations.list()
9
+
10
+ def get_conversation_by_assistant_id(self, assistant_id: str):
11
+ return self.client.conversations.list_by_assistant_id(assistant_id)
12
+
13
+ def get_conversation_by_id(self, conversation_id: str) -> requests.Response:
14
+ return self.client.conversations.get_conversation(conversation_id)
15
+
16
+ def delete_conversation(self, conversation_id: str) -> requests.Response:
17
+ return self.client.conversations.delete(conversation_id)
@@ -0,0 +1,125 @@
1
+ """
2
+ Utility functions for managing environment variables and dotenv files with caching prevention.
3
+ """
4
+
5
+ import os
6
+ import time
7
+ from pathlib import Path
8
+ from dotenv import load_dotenv
9
+
10
+
11
+ class EnvManager:
12
+ """
13
+ Manages environment variables with proper caching prevention.
14
+ """
15
+
16
+ @staticmethod
17
+ def clear_env_vars_from_file(env_file_path: Path) -> None:
18
+ """
19
+ Clear environment variables that exist in the specified .env file from os.environ.
20
+
21
+ Args:
22
+ env_file_path: Path to the .env file
23
+ """
24
+ if not env_file_path.exists():
25
+ return
26
+
27
+ with open(env_file_path, "r") as f:
28
+ content = f.read()
29
+
30
+ for line in content.splitlines():
31
+ line = line.strip()
32
+ if line and "=" in line and not line.startswith("#"):
33
+ key = line.split("=", 1)[0].strip()
34
+ os.environ.pop(key, None)
35
+
36
+ @staticmethod
37
+ def write_env_file_safely(env_file_path: Path, content: str) -> None:
38
+ """
39
+ Write content to .env file with proper flushing and sync.
40
+
41
+ Args:
42
+ env_file_path: Path to the .env file
43
+ content: Content to write
44
+ """
45
+ # Ensure parent directory exists
46
+ env_file_path.parent.mkdir(parents=True, exist_ok=True)
47
+
48
+ # Write with proper flushing
49
+ with open(env_file_path, "w", encoding="utf-8") as file:
50
+ file.write(content)
51
+ file.flush()
52
+ os.fsync(file.fileno())
53
+
54
+ @staticmethod
55
+ def load_env_with_retry(
56
+ env_file_path: Path,
57
+ max_retries: int = 3,
58
+ retry_delay: float = 0.1,
59
+ override: bool = True,
60
+ ) -> bool:
61
+ """
62
+ Load .env file with retry mechanism to handle caching issues.
63
+
64
+ Args:
65
+ env_file_path: Path to the .env file
66
+ max_retries: Maximum number of retry attempts
67
+ retry_delay: Delay between retries in seconds
68
+ override: Whether to override existing environment variables
69
+
70
+ Returns:
71
+ bool: True if successfully loaded, False otherwise
72
+ """
73
+ for attempt in range(max_retries):
74
+ try:
75
+ # Small delay to ensure file system consistency
76
+ if attempt > 0:
77
+ time.sleep(retry_delay)
78
+
79
+ # Verify file exists and is readable
80
+ if not env_file_path.exists():
81
+ raise FileNotFoundError(f".env file not found: {env_file_path}")
82
+
83
+ # Read file content to verify it's accessible
84
+ with open(env_file_path, "r") as f:
85
+ content = f.read()
86
+
87
+ if not content.strip():
88
+ raise ValueError("Empty .env file")
89
+
90
+ # Load environment variables
91
+ success = load_dotenv(env_file_path, override=override)
92
+
93
+ if success:
94
+ return True
95
+
96
+ except Exception as e:
97
+ if attempt == max_retries - 1:
98
+ raise Exception(
99
+ f"Failed to load .env file after {max_retries} attempts: {e}"
100
+ )
101
+ continue
102
+
103
+ return False
104
+
105
+ @staticmethod
106
+ def update_env_file_safely(
107
+ env_file_path: Path, new_content: str, clear_old_vars: bool = True
108
+ ) -> None:
109
+ """
110
+ Safely update .env file with new content, handling caching issues.
111
+
112
+ Args:
113
+ env_file_path: Path to the .env file
114
+ new_content: New content to write
115
+ clear_old_vars: Whether to clear old environment variables
116
+ """
117
+ # Clear old environment variables if requested
118
+ if clear_old_vars:
119
+ EnvManager.clear_env_vars_from_file(env_file_path)
120
+
121
+ # Write new content safely
122
+ EnvManager.write_env_file_safely(env_file_path, new_content)
123
+
124
+ # Load new environment variables with retry
125
+ EnvManager.load_env_with_retry(env_file_path, override=True)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codemie-test-harness"
3
- version = "0.1.145"
3
+ version = "0.1.147"
4
4
  description = "Autotest for CodeMie backend and UI"
5
5
  authors = [
6
6
  "Anton Yeromin <anton_yeromin@epam.com>",
@@ -12,7 +12,7 @@ packages = [
12
12
 
13
13
  [tool.poetry.dependencies]
14
14
  python = "^3.12"
15
- codemie-sdk-python = "0.1.145"
15
+ codemie-sdk-python = "0.1.147"
16
16
  pytest = "^8.4.1"
17
17
  python-dotenv = "^1.1.0"
18
18
  PyHamcrest = "^2.1.0"