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.
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/PKG-INFO +2 -2
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/conftest.py +23 -8
- codemie_test_harness-0.1.147/codemie_test_harness/tests/conversations/test_conversations_endpoints.py +123 -0
- codemie_test_harness-0.1.147/codemie_test_harness/tests/utils/conversation_utils.py +17 -0
- codemie_test_harness-0.1.147/codemie_test_harness/tests/utils/env_utils.py +125 -0
- codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/__init__.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/pyproject.toml +2 -2
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/README.md +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/.env +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/__init__.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/__init__.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/cli.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/commands/__init__.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/commands/config_cmd.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/commands/run_cmd.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/constants.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/runner.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/pytest.ini +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/__init__.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/__init__.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/__init__.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_code_datasource.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_confluence_datasource.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_file_indexing.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_google_datasource.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/datasource/test_jira_datasource.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/default_integrations/__init__.py +0 -0
- {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
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/test_assistants.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/__init__.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/ado/__init__.py +0 -0
- {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
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/cloud/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/codebase/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/datamanagement/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/filemanagement/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/git/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/mcp/__init__.py +0 -0
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/notification/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/openapi/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/plugin/__init__.py +0 -0
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/project_management/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/research/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/servicenow/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/assistant/tools/vcs/__init__.py +0 -0
- {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
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/e2e/test_e2e.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/enums/integrations.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/enums/model_types.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/enums/tools.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/project/test_default_integrations.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/project/test_project_integrations.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/user/test_default_integrations.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/integrations/user/test_user_integrations.py +0 -0
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/llm/assistants/test_llm.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/providers/test_providers_endpoints.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/__init__.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/test_search_assistant.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/test_search_datasource.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/test_search_integration.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/search/test_search_workflow.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_assistant_service.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_datasource_service.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_integration_service.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_llm_service.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_task_service.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_user_service.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_workflow_execution_service.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/service/test_workflow_service.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/file_test_data.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/provider_payload.json +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.csv +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.docx +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.gif +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.ini +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.jpeg +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.jpg +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.json +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.pdf +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.png +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.pptx +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.txt +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.vtt +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.xlsx +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.xml +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/files/test.yaml +0 -0
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/index_test_data.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/integrations_test_data.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/llm_test_data.py +0 -0
- {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
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/openapi.json +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/test_data/workflow_validation_messages.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/conftest.py +0 -0
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/assistants/assistants_page.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/base_page.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/__init__.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/header.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/pop_up.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/workflow_card.py +0 -0
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/components/workflow_sidebar.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/login_page.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/pageobject/workflows/workflows_page.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_create_workflow.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_edit_workflow.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_workflow_details.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_workflow_executions_page.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_workflow_templates.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/ui/test_workflows.py +0 -0
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/assistant_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/aws_parameters_store.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/base_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/client_factory.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/constants.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/datasource_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/file_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/gitbud_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/http_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/integration_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/json_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/llm_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/logger_util.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/notification_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/provider_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/pytest_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/search_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/similarity_check.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/user_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/workflow_utils.py +0 -0
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/utils/yaml_utils.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/workflow/test_workflows.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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.
|
|
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.
|
|
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)
|
{codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/conftest.py
RENAMED
|
@@ -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
|
-
|
|
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
|
-
#
|
|
88
|
-
|
|
89
|
-
|
|
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)
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "codemie-test-harness"
|
|
3
|
-
version = "0.1.
|
|
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.
|
|
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"
|
|
File without changes
|
|
File without changes
|
{codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/__init__.py
RENAMED
|
File without changes
|
{codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/__init__.py
RENAMED
|
File without changes
|
{codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/constants.py
RENAMED
|
File without changes
|
{codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/runner.py
RENAMED
|
File without changes
|
{codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/cli/utils.py
RENAMED
|
File without changes
|
{codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/pytest.ini
RENAMED
|
File without changes
|
{codemie_test_harness-0.1.145 → codemie_test_harness-0.1.147}/codemie_test_harness/tests/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|