codemie-test-harness 0.1.147__tar.gz → 0.1.148__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 (341) hide show
  1. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/PKG-INFO +2 -2
  2. codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/access_management/test_keycloak_tool.py +25 -0
  3. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/conftest.py +11 -0
  4. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/enums/tools.py +7 -0
  5. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/integrations/project/test_default_integrations.py +37 -0
  6. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/integrations/project/test_project_integrations.py +3 -0
  7. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/integrations/user/test_default_integrations.py +37 -0
  8. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/integrations/user/test_user_integrations.py +3 -0
  9. codemie_test_harness-0.1.148/codemie_test_harness/tests/test_data/direct_tools/keycloak_tool_test_data.py +120 -0
  10. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/integrations_test_data.py +4 -0
  11. codemie_test_harness-0.1.148/codemie_test_harness/tests/test_data/keycloak_tool_test_data.py +35 -0
  12. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/aws_parameters_store.py +28 -0
  13. codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/access_management/test_workflow_with_assistant_with_keycloak_tool.py +28 -0
  14. codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_access_management_tool.py +74 -0
  15. codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/access_management/test_workflow_with_keycloak_tool.py +29 -0
  16. codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/research/__init__.py +0 -0
  17. codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/__init__.py +0 -0
  18. codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/__init__.py +0 -0
  19. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/pyproject.toml +2 -2
  20. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/README.md +0 -0
  21. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/.env +0 -0
  22. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/__init__.py +0 -0
  23. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/cli/__init__.py +0 -0
  24. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/cli/cli.py +0 -0
  25. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/cli/commands/__init__.py +0 -0
  26. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/cli/commands/config_cmd.py +0 -0
  27. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/cli/commands/run_cmd.py +0 -0
  28. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/cli/constants.py +0 -0
  29. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/cli/runner.py +0 -0
  30. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/cli/utils.py +0 -0
  31. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/pytest.ini +0 -0
  32. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/__init__.py +0 -0
  33. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/__init__.py +0 -0
  34. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/datasource/__init__.py +0 -0
  35. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/datasource/test_code_datasource.py +0 -0
  36. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/datasource/test_confluence_datasource.py +0 -0
  37. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/datasource/test_file_indexing.py +0 -0
  38. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/datasource/test_google_datasource.py +0 -0
  39. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/datasource/test_jira_datasource.py +0 -0
  40. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/default_integrations/__init__.py +0 -0
  41. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool.py +0 -0
  42. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  43. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_with_datasource.py +0 -0
  44. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/test_assistants.py +0 -0
  45. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/__init__.py +0 -0
  46. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/ado → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/access_management}/__init__.py +0 -0
  47. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/cloud → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/ado}/__init__.py +0 -0
  48. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_test_plan_tools.py +0 -0
  49. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_wiki_tools.py +0 -0
  50. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_work_item_tools.py +0 -0
  51. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/codebase → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/cloud}/__init__.py +0 -0
  52. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/cloud/test_cloud_tools.py +0 -0
  53. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/datamanagement → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/codebase}/__init__.py +0 -0
  54. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/codebase/test_codebase_tools.py +0 -0
  55. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/filemanagement → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/datamanagement}/__init__.py +0 -0
  56. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/datamanagement/test_assistant_with_data_management_tools.py +0 -0
  57. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/git → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/filemanagement}/__init__.py +0 -0
  58. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/filemanagement/test_assistant_with_file_management_tools.py +0 -0
  59. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/mcp → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/git}/__init__.py +0 -0
  60. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/git/test_assistant_with_git_tools.py +0 -0
  61. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/notification → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/mcp}/__init__.py +0 -0
  62. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/mcp/test_cli_mcp_server.py +0 -0
  63. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/mcp/test_mcp_servers.py +0 -0
  64. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/openapi → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/notification}/__init__.py +0 -0
  65. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/notification/test_assistant_notification_tools.py +0 -0
  66. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/plugin → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/openapi}/__init__.py +0 -0
  67. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/openapi/test_assistant_with_open_api_tools.py +0 -0
  68. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/project_management → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/plugin}/__init__.py +0 -0
  69. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_development_plugin.py +0 -0
  70. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_plugin_and_mcp_servers.py +0 -0
  71. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/research → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/project_management}/__init__.py +0 -0
  72. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/project_management/test_assistant_pm_tools.py +0 -0
  73. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/servicenow → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/research}/__init__.py +0 -0
  74. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/research/test_assistant_research_tools.py +0 -0
  75. {codemie_test_harness-0.1.147/codemie_test_harness/tests/assistant/tools/vcs → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/servicenow}/__init__.py +0 -0
  76. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/servicenow/test_servicenow_tools.py +0 -0
  77. {codemie_test_harness-0.1.147/codemie_test_harness/tests/conversations → codemie_test_harness-0.1.148/codemie_test_harness/tests/assistant/tools/vcs}/__init__.py +0 -0
  78. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/assistant/tools/vcs/test_assistant_with_vcs_tools.py +0 -0
  79. {codemie_test_harness-0.1.147/codemie_test_harness/tests/e2e → codemie_test_harness-0.1.148/codemie_test_harness/tests/conversations}/__init__.py +0 -0
  80. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/conversations/test_conversations_endpoints.py +0 -0
  81. {codemie_test_harness-0.1.147/codemie_test_harness/tests/enums → codemie_test_harness-0.1.148/codemie_test_harness/tests/e2e}/__init__.py +0 -0
  82. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/e2e/test_e2e.py +0 -0
  83. {codemie_test_harness-0.1.147/codemie_test_harness/tests/integrations/project → codemie_test_harness-0.1.148/codemie_test_harness/tests/enums}/__init__.py +0 -0
  84. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/enums/integrations.py +0 -0
  85. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/enums/model_types.py +0 -0
  86. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/integrations/__init__.py +0 -0
  87. {codemie_test_harness-0.1.147/codemie_test_harness/tests/integrations/user → codemie_test_harness-0.1.148/codemie_test_harness/tests/integrations/project}/__init__.py +0 -0
  88. {codemie_test_harness-0.1.147/codemie_test_harness/tests/llm → codemie_test_harness-0.1.148/codemie_test_harness/tests/integrations/user}/__init__.py +0 -0
  89. {codemie_test_harness-0.1.147/codemie_test_harness/tests/llm/assistants → codemie_test_harness-0.1.148/codemie_test_harness/tests/llm}/__init__.py +0 -0
  90. {codemie_test_harness-0.1.147/codemie_test_harness/tests/providers → codemie_test_harness-0.1.148/codemie_test_harness/tests/llm/assistants}/__init__.py +0 -0
  91. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/llm/assistants/test_llm.py +0 -0
  92. {codemie_test_harness-0.1.147/codemie_test_harness/tests/service → codemie_test_harness-0.1.148/codemie_test_harness/tests/providers}/__init__.py +0 -0
  93. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/providers/test_providers_endpoints.py +0 -0
  94. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/search/__init__.py +0 -0
  95. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/search/test_search_assistant.py +0 -0
  96. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/search/test_search_datasource.py +0 -0
  97. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/search/test_search_integration.py +0 -0
  98. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/search/test_search_workflow.py +0 -0
  99. {codemie_test_harness-0.1.147/codemie_test_harness/tests/test_data → codemie_test_harness-0.1.148/codemie_test_harness/tests/service}/__init__.py +0 -0
  100. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/service/test_assistant_service.py +0 -0
  101. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/service/test_datasource_service.py +0 -0
  102. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/service/test_integration_service.py +0 -0
  103. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/service/test_llm_service.py +0 -0
  104. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/service/test_task_service.py +0 -0
  105. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/service/test_user_service.py +0 -0
  106. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/service/test_workflow_execution_service.py +0 -0
  107. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/service/test_workflow_service.py +0 -0
  108. {codemie_test_harness-0.1.147/codemie_test_harness/tests/test_data/direct_tools → codemie_test_harness-0.1.148/codemie_test_harness/tests/test_data}/__init__.py +0 -0
  109. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/ado_test_plan_tools_test_data.py +0 -0
  110. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/ado_wiki_tools_test_data.py +0 -0
  111. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/ado_work_item_tools_test_data.py +0 -0
  112. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/cloud_tools_test_data.py +0 -0
  113. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/codebase_tools_test_data.py +0 -0
  114. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/data_management_tools_test_data.py +0 -0
  115. {codemie_test_harness-0.1.147/codemie_test_harness/tests/ui → codemie_test_harness-0.1.148/codemie_test_harness/tests/test_data/direct_tools}/__init__.py +0 -0
  116. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/ado_test_plan_tools_test_data.py +0 -0
  117. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/ado_wiki_tools_test_data.py +0 -0
  118. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/ado_work_item_tools_test_data.py +0 -0
  119. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/cloud_tools_test_data.py +0 -0
  120. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/codebase_tools_test_data.py +0 -0
  121. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/data_management_tools_test_data.py +0 -0
  122. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/direct_tools_test_data.py +0 -0
  123. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/file_management_tools_test_data.py +0 -0
  124. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/notification_tools_test_data.py +0 -0
  125. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/open_api_tools_test_data.py +0 -0
  126. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/project_management_tools_test_data.py +0 -0
  127. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/research_tools_test_data.py +0 -0
  128. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/servicenow_tools_test_data.py +0 -0
  129. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/direct_tools/vcs_tools_test_data.py +0 -0
  130. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/file_management_tools_test_data.py +0 -0
  131. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/file_test_data.py +0 -0
  132. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/large-files/large_file.txt +0 -0
  133. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/provider_payload.json +0 -0
  134. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.csv +0 -0
  135. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.docx +0 -0
  136. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.gif +0 -0
  137. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.ini +0 -0
  138. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.jpeg +0 -0
  139. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.jpg +0 -0
  140. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.json +0 -0
  141. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.pdf +0 -0
  142. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.png +0 -0
  143. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.pptx +0 -0
  144. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.txt +0 -0
  145. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.vtt +0 -0
  146. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.xlsx +0 -0
  147. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.xml +0 -0
  148. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/files/test.yaml +0 -0
  149. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/git_tools_test_data.py +0 -0
  150. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/google_datasource_test_data.py +0 -0
  151. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/index_test_data.py +0 -0
  152. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/llm_test_data.py +0 -0
  153. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/mcp_server_test_data.py +0 -0
  154. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/notification_tools_test_data.py +0 -0
  155. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/open_api_tools_test_data.py +0 -0
  156. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/openapi.json +0 -0
  157. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/output_schema_test_data.py +0 -0
  158. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/plugin_tools_test_data.py +0 -0
  159. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/pm_tools_test_data.py +0 -0
  160. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/project_management_test_data.py +0 -0
  161. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/research_tools_test_data.py +0 -0
  162. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/servicenow_tools_test_data.py +0 -0
  163. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/vcs_tools_test_data.py +0 -0
  164. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_assistant_id.yaml +0 -0
  165. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_assistant_in_state.yaml +0 -0
  166. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_data_source.yaml +0 -0
  167. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_state.yaml +0 -0
  168. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_tool.yaml +0 -0
  169. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_yaml.yaml +0 -0
  170. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_yaml_format.yaml +0 -0
  171. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_assistant_id.yaml +0 -0
  172. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_assistant_tools_name.yaml +0 -0
  173. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_backoff_factor.yaml +0 -0
  174. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_initial_interval.yaml +0 -0
  175. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_max_attempts.yaml +0 -0
  176. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_retry_max_interval.yaml +0 -0
  177. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states.yaml +0 -0
  178. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_id.yaml +0 -0
  179. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next.yaml +0 -0
  180. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_condition_expression.yaml +0 -0
  181. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_condition_otherwise.yaml +0 -0
  182. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_condition_then.yaml +0 -0
  183. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_cases.yaml +0 -0
  184. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_cases_condition.yaml +0 -0
  185. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_cases_state_id.yaml +0 -0
  186. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_next_switch_default.yaml +0 -0
  187. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_backoff_factor.yaml +0 -0
  188. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_initial_interval.yaml +0 -0
  189. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_max_attempts.yaml +0 -0
  190. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_states_retry_max_interval.yaml +0 -0
  191. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_system_prompt.yaml +0 -0
  192. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_tools_id.yaml +0 -0
  193. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow/invalid_config/missing_required_tools_name.yaml +0 -0
  194. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/test_data/workflow_validation_messages.py +0 -0
  195. {codemie_test_harness-0.1.147/codemie_test_harness/tests/ui/pageobject → codemie_test_harness-0.1.148/codemie_test_harness/tests/ui}/__init__.py +0 -0
  196. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/conftest.py +0 -0
  197. {codemie_test_harness-0.1.147/codemie_test_harness/tests/ui/pageobject/assistants → codemie_test_harness-0.1.148/codemie_test_harness/tests/ui/pageobject}/__init__.py +0 -0
  198. {codemie_test_harness-0.1.147/codemie_test_harness/tests/utils → codemie_test_harness-0.1.148/codemie_test_harness/tests/ui/pageobject/assistants}/__init__.py +0 -0
  199. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/assistants/assistants_page.py +0 -0
  200. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/base_page.py +0 -0
  201. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/components/__init__.py +0 -0
  202. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/components/execution_history_row.py +0 -0
  203. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/components/header.py +0 -0
  204. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/components/pop_up.py +0 -0
  205. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/components/workflow_card.py +0 -0
  206. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/components/workflow_execution_history_item.py +0 -0
  207. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/components/workflow_execution_state.py +0 -0
  208. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/components/workflow_sidebar.py +0 -0
  209. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/components/workflow_state_card.py +0 -0
  210. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/login_page.py +0 -0
  211. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/workflows/__init__.py +0 -0
  212. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/workflows/base_workflow_form_page.py +0 -0
  213. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/workflows/create_workflow_page.py +0 -0
  214. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/workflows/edit_workflow_page.py +0 -0
  215. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_details_page.py +0 -0
  216. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_executions_page.py +0 -0
  217. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_template_details.py +0 -0
  218. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/workflows/workflow_templates_page.py +0 -0
  219. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/pageobject/workflows/workflows_page.py +0 -0
  220. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/test_create_workflow.py +0 -0
  221. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/test_edit_workflow.py +0 -0
  222. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/test_workflow_details.py +0 -0
  223. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/test_workflow_executions_page.py +0 -0
  224. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/test_workflow_templates.py +0 -0
  225. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/ui/test_workflows.py +0 -0
  226. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow → codemie_test_harness-0.1.148/codemie_test_harness/tests/utils}/__init__.py +0 -0
  227. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/assistant_utils.py +0 -0
  228. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/base_utils.py +0 -0
  229. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/client_factory.py +0 -0
  230. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/constants.py +0 -0
  231. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/conversation_utils.py +0 -0
  232. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/datasource_utils.py +0 -0
  233. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/env_utils.py +0 -0
  234. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/file_utils.py +0 -0
  235. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/gitbud_utils.py +0 -0
  236. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/http_utils.py +0 -0
  237. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/integration_utils.py +0 -0
  238. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/json_utils.py +0 -0
  239. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/llm_utils.py +0 -0
  240. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/logger_util.py +0 -0
  241. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/notification_utils.py +0 -0
  242. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/provider_utils.py +0 -0
  243. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/pytest_utils.py +0 -0
  244. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/search_utils.py +0 -0
  245. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/similarity_check.py +0 -0
  246. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/user_utils.py +0 -0
  247. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/workflow_utils.py +0 -0
  248. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/utils/yaml_utils.py +0 -0
  249. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow}/__init__.py +0 -0
  250. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/ado → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools}/__init__.py +0 -0
  251. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/cloud → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/access_management}/__init__.py +0 -0
  252. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/codebase → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/ado}/__init__.py +0 -0
  253. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_test_plan_tools.py +0 -0
  254. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_wiki_tools.py +0 -0
  255. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_work_item_tools.py +0 -0
  256. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/data_management → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/cloud}/__init__.py +0 -0
  257. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/cloud/test_workflow_with_assistant_cloud_tools.py +0 -0
  258. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/default_integrations → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/codebase}/__init__.py +0 -0
  259. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/codebase/test_worfklow_with_assistant_codebase_tools.py +0 -0
  260. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/git → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/data_management}/__init__.py +0 -0
  261. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/data_management/test_workflow_with_assistant_with_data_management_tools.py +0 -0
  262. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/mcp → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/default_integrations}/__init__.py +0 -0
  263. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool.py +0 -0
  264. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  265. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +0 -0
  266. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/file_management/__init__.py +0 -0
  267. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/file_management/test_workflow_with_assistant_with_file_management_tools.py +0 -0
  268. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/notification → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/git}/__init__.py +0 -0
  269. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py +0 -0
  270. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/plugin → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/mcp}/__init__.py +0 -0
  271. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/mcp/test_workflow_with_assistant_with_mcp_server.py +0 -0
  272. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/project_management → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/notification}/__init__.py +0 -0
  273. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/notification/test_workflow_with_assistant_notification_tools.py +0 -0
  274. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/open_api/__init__.py +0 -0
  275. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/open_api/test_workflow_with_assistant_with_open_api_tools.py +0 -0
  276. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/research → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/plugin}/__init__.py +0 -0
  277. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_development_plugin.py +0 -0
  278. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_plugin_and_mcp_servers.py +0 -0
  279. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/servicenow → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/project_management}/__init__.py +0 -0
  280. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/project_management/test_workflow_with_assistant_pm_tools.py +0 -0
  281. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/assistant_tools/vcs → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/research}/__init__.py +0 -0
  282. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/research/test_workflow_with_assistant_research_tools.py +0 -0
  283. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/config_validation → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/servicenow}/__init__.py +0 -0
  284. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +0 -0
  285. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/direct_tools_calling → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/assistant_tools/vcs}/__init__.py +0 -0
  286. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/assistant_tools/vcs/workflow_with_assistant_vcs_tools.py +0 -0
  287. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/config_validation}/__init__.py +0 -0
  288. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/config_validation/test_config_validation.py +0 -0
  289. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/direct_tools_calling}/__init__.py +0 -0
  290. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations}/__init__.py +0 -0
  291. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool.py +0 -0
  292. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  293. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_test_plan_tools.py +0 -0
  294. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_wiki_tools.py +0 -0
  295. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_work_item_tools.py +0 -0
  296. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_cloud_tools.py +0 -0
  297. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_codebase_tools.py +0 -0
  298. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools.py +0 -0
  299. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_file_management_tools.py +0 -0
  300. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_notification_tools.py +0 -0
  301. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_open_api_tools.py +0 -0
  302. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_plugin_tools.py +0 -0
  303. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_project_management_tools.py +0 -0
  304. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_research_tools.py +0 -0
  305. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_servicenow_tools.py +0 -0
  306. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_vcs_tools.py +0 -0
  307. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/test_workflows.py +0 -0
  308. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools}/__init__.py +0 -0
  309. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/access_management}/__init__.py +0 -0
  310. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/git → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado}/__init__.py +0 -0
  311. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_test_plan_tools.py +0 -0
  312. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_wiki_tools.py +0 -0
  313. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_work_item_tools.py +0 -0
  314. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud}/__init__.py +0 -0
  315. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud/test_workflow_with_cloud_tools.py +0 -0
  316. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/__init__.py +0 -0
  317. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/test_workflow_with_codebase_tools.py +0 -0
  318. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/__init__.py +0 -0
  319. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/test_workflow_with_data_management_tools.py +0 -0
  320. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations}/__init__.py +0 -0
  321. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool.py +0 -0
  322. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +0 -0
  323. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +0 -0
  324. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/__init__.py +0 -0
  325. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/test_workflow_with_file_management_tools.py +0 -0
  326. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/research → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/git}/__init__.py +0 -0
  327. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py +0 -0
  328. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp}/__init__.py +0 -0
  329. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp/test_workflow_with_mcp_server.py +0 -0
  330. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/notification/__init__.py +0 -0
  331. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/notification/test_workflow_with_notification_tools.py +0 -0
  332. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/open_api/__init__.py +0 -0
  333. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/open_api/test_workflow_with_open_api_tools.py +0 -0
  334. {codemie_test_harness-0.1.147/codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs → codemie_test_harness-0.1.148/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin}/__init__.py +0 -0
  335. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_development_plugin.py +0 -0
  336. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_plugin_and_mcp_servers.py +0 -0
  337. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/project_management/__init__.py +0 -0
  338. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/project_management/test_workflow_with_project_management_tools.py +0 -0
  339. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/research/test_workflow_with_research_tools.py +0 -0
  340. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +0 -0
  341. {codemie_test_harness-0.1.147 → codemie_test_harness-0.1.148}/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.147
3
+ Version: 0.1.148
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.147)
16
+ Requires-Dist: codemie-sdk-python (==0.1.148)
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)
@@ -0,0 +1,25 @@
1
+ import pytest
2
+
3
+ from codemie_test_harness.tests.enums.tools import Toolkit, AccessManagementTool
4
+ from codemie_test_harness.tests.test_data.keycloak_tool_test_data import (
5
+ KEYCLOAK_TOOL_PROMPT,
6
+ KEYCLOAK_TOOL_RESPONSE,
7
+ )
8
+
9
+
10
+ @pytest.mark.regression
11
+ def test_assistant_with_keycloak_tool(
12
+ assistant_utils,
13
+ assistant,
14
+ keycloak_integration,
15
+ similarity_check,
16
+ ):
17
+ keycloak_assistant = assistant(
18
+ Toolkit.ACCESS_MANAGEMENT,
19
+ AccessManagementTool.KEYCLOAK,
20
+ settings=keycloak_integration,
21
+ )
22
+
23
+ response = assistant_utils.ask_assistant(keycloak_assistant, KEYCLOAK_TOOL_PROMPT)
24
+
25
+ similarity_check.check_similarity(response, KEYCLOAK_TOOL_RESPONSE)
@@ -379,6 +379,17 @@ def service_now_integration(integration_utils):
379
379
  integration_utils.delete_integration(integration)
380
380
 
381
381
 
382
+ @pytest.fixture(scope="module")
383
+ def keycloak_integration(integration_utils):
384
+ credential_values = CredentialsUtil.keycloak_credentials()
385
+ integration = integration_utils.create_integration(
386
+ CredentialTypes.KEYCLOAK, credential_values
387
+ )
388
+ yield integration
389
+ if integration:
390
+ integration_utils.delete_integration(integration)
391
+
392
+
382
393
  @pytest.fixture(scope="function")
383
394
  def general_integration(integration_utils):
384
395
  created_integration: Optional[Integration] = None
@@ -19,6 +19,7 @@ class Toolkit(str, Enum):
19
19
  OPEN_API = "OpenAPI"
20
20
  DATA_MANAGEMENT = "Data Management"
21
21
  SERVICENOW = "IT Service Management"
22
+ ACCESS_MANAGEMENT = "Access Management"
22
23
 
23
24
 
24
25
  class GitTool(str, Enum):
@@ -178,3 +179,9 @@ class ServiceNowTool(str, Enum):
178
179
  """Enum for ServiceNow tool names."""
179
180
 
180
181
  SERVICE_NOW = "servicenow_table_tool"
182
+
183
+
184
+ class AccessManagementTool(str, Enum):
185
+ """Enum for Access Management tool names."""
186
+
187
+ KEYCLOAK = "keycloak"
@@ -12,6 +12,7 @@ from codemie_test_harness.tests.enums.tools import (
12
12
  ProjectManagementTool,
13
13
  CodeBaseTool,
14
14
  CloudTool,
15
+ AccessManagementTool,
15
16
  )
16
17
  from codemie_test_harness.tests.test_data.ado_test_plan_tools_test_data import (
17
18
  ado_test_plan_get_test_data,
@@ -23,6 +24,10 @@ from codemie_test_harness.tests.test_data.codebase_tools_test_data import (
23
24
  from codemie_test_harness.tests.test_data.git_tools_test_data import (
24
25
  list_branches_set_active_branch_test_data,
25
26
  )
27
+ from codemie_test_harness.tests.test_data.keycloak_tool_test_data import (
28
+ KEYCLOAK_TOOL_PROMPT,
29
+ KEYCLOAK_TOOL_RESPONSE,
30
+ )
26
31
  from codemie_test_harness.tests.test_data.notification_tools_test_data import (
27
32
  EMAIL_TOOL_PROMPT,
28
33
  EMAIL_RESPONSE,
@@ -270,3 +275,35 @@ def test_assistant_with_default_integration_email(
270
275
  response = assistant_utils.ask_assistant(email_assistant, EMAIL_TOOL_PROMPT)
271
276
 
272
277
  similarity_check.check_similarity(response, EMAIL_RESPONSE)
278
+
279
+
280
+ @pytest.mark.regression
281
+ def test_assistant_with_default_integration_keycloak(
282
+ general_integration,
283
+ integration_utils,
284
+ assistant,
285
+ assistant_utils,
286
+ similarity_check,
287
+ ):
288
+ # delete existing integrations of the same type
289
+ for integration_type in IntegrationType:
290
+ integration_utils.delete_integrations_by_type(
291
+ integration_type, CredentialTypes.KEYCLOAK, test_project_name
292
+ )
293
+ # create a new integration
294
+ general_integration(
295
+ integration_type=IntegrationType.PROJECT,
296
+ credential_type=CredentialTypes.KEYCLOAK,
297
+ credential_values=CredentialsUtil.keycloak_credentials(),
298
+ project_name=test_project_name,
299
+ )
300
+ # create an assistant
301
+ keycloak_assistant = assistant(
302
+ Toolkit.ACCESS_MANAGEMENT,
303
+ AccessManagementTool.KEYCLOAK,
304
+ project_name=test_project_name,
305
+ )
306
+
307
+ response = assistant_utils.ask_assistant(keycloak_assistant, KEYCLOAK_TOOL_PROMPT)
308
+
309
+ similarity_check.check_similarity(response, KEYCLOAK_TOOL_RESPONSE)
@@ -46,6 +46,7 @@ from codemie_test_harness.tests.utils.base_utils import (
46
46
  f"Project integration: {CredentialTypes.TELEGRAM}",
47
47
  f"Project integration: {CredentialTypes.SERVICE_NOW}",
48
48
  f"Project integration: {CredentialTypes.KUBERNETES}",
49
+ f"Project integration: {CredentialTypes.KEYCLOAK}",
49
50
  ],
50
51
  )
51
52
  @pytest.mark.regression
@@ -148,6 +149,7 @@ def test_integration_after_creation(
148
149
  f"Project integration: {CredentialTypes.TELEGRAM}",
149
150
  f"Project integration: {CredentialTypes.SERVICE_NOW}",
150
151
  f"Project integration: {CredentialTypes.KUBERNETES}",
152
+ f"Project integration: {CredentialTypes.KEYCLOAK}",
151
153
  ],
152
154
  )
153
155
  @pytest.mark.tescase("EPMCDME-2376")
@@ -333,6 +335,7 @@ def test_integration_during_creation_with_invalid_credentials(
333
335
  f"Project integration: {CredentialTypes.TELEGRAM}",
334
336
  f"Project integration: {CredentialTypes.SERVICE_NOW}",
335
337
  f"Project integration: {CredentialTypes.KUBERNETES}",
338
+ f"Project integration: {CredentialTypes.KEYCLOAK}",
336
339
  ],
337
340
  )
338
341
  @pytest.mark.tescase("EPMCDME-2374")
@@ -12,6 +12,7 @@ from codemie_test_harness.tests.enums.tools import (
12
12
  ProjectManagementTool,
13
13
  CodeBaseTool,
14
14
  CloudTool,
15
+ AccessManagementTool,
15
16
  )
16
17
  from codemie_test_harness.tests.test_data.ado_test_plan_tools_test_data import (
17
18
  ado_test_plan_get_test_data,
@@ -23,6 +24,10 @@ from codemie_test_harness.tests.test_data.codebase_tools_test_data import (
23
24
  from codemie_test_harness.tests.test_data.git_tools_test_data import (
24
25
  list_branches_set_active_branch_test_data,
25
26
  )
27
+ from codemie_test_harness.tests.test_data.keycloak_tool_test_data import (
28
+ KEYCLOAK_TOOL_PROMPT,
29
+ KEYCLOAK_TOOL_RESPONSE,
30
+ )
26
31
  from codemie_test_harness.tests.test_data.notification_tools_test_data import (
27
32
  EMAIL_TOOL_PROMPT,
28
33
  EMAIL_RESPONSE,
@@ -270,3 +275,35 @@ def test_assistant_with_default_integration_email(
270
275
  response = assistant_utils.ask_assistant(email_assistant, EMAIL_TOOL_PROMPT)
271
276
 
272
277
  similarity_check.check_similarity(response, EMAIL_RESPONSE)
278
+
279
+
280
+ @pytest.mark.regression
281
+ def test_assistant_with_default_integration_keycloak(
282
+ general_integration,
283
+ integration_utils,
284
+ assistant,
285
+ assistant_utils,
286
+ similarity_check,
287
+ ):
288
+ # delete existing integrations of the same type
289
+ for integration_type in IntegrationType:
290
+ integration_utils.delete_integrations_by_type(
291
+ integration_type, CredentialTypes.KEYCLOAK, test_project_name
292
+ )
293
+ # create a new integration
294
+ general_integration(
295
+ integration_type=IntegrationType.USER,
296
+ credential_type=CredentialTypes.KEYCLOAK,
297
+ credential_values=CredentialsUtil.keycloak_credentials(),
298
+ project_name=test_project_name,
299
+ )
300
+ # create an assistant
301
+ keycloak_assistant = assistant(
302
+ Toolkit.ACCESS_MANAGEMENT,
303
+ AccessManagementTool.KEYCLOAK,
304
+ project_name=test_project_name,
305
+ )
306
+
307
+ response = assistant_utils.ask_assistant(keycloak_assistant, KEYCLOAK_TOOL_PROMPT)
308
+
309
+ similarity_check.check_similarity(response, KEYCLOAK_TOOL_RESPONSE)
@@ -46,6 +46,7 @@ from codemie_test_harness.tests.utils.base_utils import (
46
46
  f"User integration: {CredentialTypes.TELEGRAM}",
47
47
  f"User integration: {CredentialTypes.SERVICE_NOW}",
48
48
  f"User integration: {CredentialTypes.KUBERNETES}",
49
+ f"User integration: {CredentialTypes.KEYCLOAK}",
49
50
  ],
50
51
  )
51
52
  @pytest.mark.regression
@@ -150,6 +151,7 @@ def test_integration_after_creation(
150
151
  f"User integration: {CredentialTypes.TELEGRAM}",
151
152
  f"User integration: {CredentialTypes.SERVICE_NOW}",
152
153
  f"User integration: {CredentialTypes.KUBERNETES}",
154
+ f"User integration: {CredentialTypes.KEYCLOAK}",
153
155
  ],
154
156
  )
155
157
  @pytest.mark.tescase("EPMCDME-2375")
@@ -336,6 +338,7 @@ def test_integration_during_creation_with_invalid_credentials(
336
338
  f"User integration: {CredentialTypes.TELEGRAM}",
337
339
  f"User integration: {CredentialTypes.SERVICE_NOW}",
338
340
  f"User integration: {CredentialTypes.KUBERNETES}",
341
+ f"User integration: {CredentialTypes.KEYCLOAK}",
339
342
  ],
340
343
  )
341
344
  @pytest.mark.tescase("EPMCDME-2373")
@@ -0,0 +1,120 @@
1
+ KEYCLOAK_DIRECT_TOOL_PROMPT = {
2
+ "method": "GET",
3
+ "relative_url": "/users/profile",
4
+ "params": "",
5
+ }
6
+
7
+ KEYCLOAK_DIRECT_TOOL_RESPONSE = """
8
+ {
9
+ "attributes": [
10
+ {
11
+ "name": "username",
12
+ "displayName": "${username}",
13
+ "validations": {
14
+ "length": {
15
+ "min": 3,
16
+ "max": 255
17
+ },
18
+ "username-prohibited-characters": {},
19
+ "up-username-not-idn-homograph": {}
20
+ },
21
+ "permissions": {
22
+ "view": [
23
+ "admin",
24
+ "user"
25
+ ],
26
+ "edit": [
27
+ "admin",
28
+ "user"
29
+ ]
30
+ },
31
+ "multivalued": false
32
+ },
33
+ {
34
+ "name": "email",
35
+ "displayName": "${email}",
36
+ "validations": {
37
+ "email": {},
38
+ "length": {
39
+ "max": 255
40
+ }
41
+ },
42
+ "required": {
43
+ "roles": [
44
+ "user"
45
+ ]
46
+ },
47
+ "permissions": {
48
+ "view": [
49
+ "admin",
50
+ "user"
51
+ ],
52
+ "edit": [
53
+ "admin",
54
+ "user"
55
+ ]
56
+ },
57
+ "multivalued": false
58
+ },
59
+ {
60
+ "name": "firstName",
61
+ "displayName": "${firstName}",
62
+ "validations": {
63
+ "length": {
64
+ "max": 255
65
+ },
66
+ "person-name-prohibited-characters": {}
67
+ },
68
+ "required": {
69
+ "roles": [
70
+ "user"
71
+ ]
72
+ },
73
+ "permissions": {
74
+ "view": [
75
+ "admin",
76
+ "user"
77
+ ],
78
+ "edit": [
79
+ "admin",
80
+ "user"
81
+ ]
82
+ },
83
+ "multivalued": false
84
+ },
85
+ {
86
+ "name": "lastName",
87
+ "displayName": "${lastName}",
88
+ "validations": {
89
+ "length": {
90
+ "max": 255
91
+ },
92
+ "person-name-prohibited-characters": {}
93
+ },
94
+ "required": {
95
+ "roles": [
96
+ "user"
97
+ ]
98
+ },
99
+ "permissions": {
100
+ "view": [
101
+ "admin",
102
+ "user"
103
+ ],
104
+ "edit": [
105
+ "admin",
106
+ "user"
107
+ ]
108
+ },
109
+ "multivalued": false
110
+ }
111
+ ],
112
+ "groups": [
113
+ {
114
+ "name": "user-metadata",
115
+ "displayHeader": "User metadata",
116
+ "displayDescription": "Attributes, which refer to user metadata"
117
+ }
118
+ ]
119
+ }
120
+ """
@@ -91,6 +91,10 @@ valid_integrations = [
91
91
  CredentialTypes.SERVICE_NOW,
92
92
  CredentialsUtil.servicenow_credentials(),
93
93
  ),
94
+ (
95
+ CredentialTypes.KEYCLOAK,
96
+ CredentialsUtil.keycloak_credentials(),
97
+ ),
94
98
  pytest.param(
95
99
  CredentialTypes.KUBERNETES,
96
100
  CredentialsUtil.kubernetes_credentials(),
@@ -0,0 +1,35 @@
1
+ KEYCLOAK_TOOL_PROMPT = "Get information about all users"
2
+
3
+ KEYCLOAK_TOOL_RESPONSE = """
4
+ 1. **User 1:**
5
+ - **ID:** 8246cdb1-a480-487c-9d6a-6873331dcffe
6
+ - **Username:** codemie-autotests-1@epam.com
7
+ - **First Name:** Codemie
8
+ - **Last Name:** Autotests-1
9
+ - **Email:** codemie-autotests-1@epam.com
10
+ - **Email Verified:** false
11
+ - **Created Timestamp:** 1756980669356
12
+ - **Enabled:** true
13
+ - **Access Permissions:**
14
+ - Manage Group Membership: true
15
+ - View: true
16
+ - Map Roles: true
17
+ - Impersonate: true
18
+ - Manage: true
19
+
20
+ 2. **User 2:**
21
+ - **ID:** e5710bb7-e3a5-4910-bd64-e9dcb75b1bfa
22
+ - **Username:** codemie-autotests-2@epam.com
23
+ - **First Name:** Codemie
24
+ - **Last Name:** Autotests-2
25
+ - **Email:** codemie-autotests-2@epam.com
26
+ - **Email Verified:** false
27
+ - **Created Timestamp:** 1756980685292
28
+ - **Enabled:** true
29
+ - **Access Permissions:**
30
+ - Manage Group Membership: true
31
+ - View: true
32
+ - Map Roles: true
33
+ - Impersonate: true
34
+ - Manage: true
35
+ """
@@ -564,6 +564,34 @@ class CredentialsUtil:
564
564
  cred.value = "wrong_token"
565
565
  return credentials
566
566
 
567
+ @staticmethod
568
+ def keycloak_credentials() -> List[CredentialValues]:
569
+ keycloak_creds = AwsParameterStore.get_cloud_provider_credentials("keycloak")
570
+ return [
571
+ CredentialValues(
572
+ key="url", value=keycloak_creds.get("keycloak_admin", {}).get("url")
573
+ ),
574
+ CredentialValues(
575
+ key="realm", value=keycloak_creds.get("keycloak_admin", {}).get("realm")
576
+ ),
577
+ CredentialValues(
578
+ key="client_id",
579
+ value=keycloak_creds.get("keycloak_admin", {}).get("client_id"),
580
+ ),
581
+ CredentialValues(
582
+ key="client_secret",
583
+ value=keycloak_creds.get("keycloak_admin", {}).get("client_secret"),
584
+ ),
585
+ ]
586
+
587
+ @staticmethod
588
+ def invalid_keycloak_credentials() -> List[CredentialValues]:
589
+ credentials = CredentialsUtil.keycloak_credentials()
590
+ for cred in credentials:
591
+ if cred.key == "client_secret":
592
+ cred.value = "wrong_secret"
593
+ return credentials
594
+
567
595
  @staticmethod
568
596
  def jira_cloud_jql() -> str:
569
597
  jira_creds = AwsParameterStore.get_cloud_provider_credentials("jira")
@@ -0,0 +1,28 @@
1
+ import pytest
2
+
3
+ from codemie_test_harness.tests.enums.tools import Toolkit, AccessManagementTool
4
+ from codemie_test_harness.tests.test_data.keycloak_tool_test_data import (
5
+ KEYCLOAK_TOOL_PROMPT,
6
+ KEYCLOAK_TOOL_RESPONSE,
7
+ )
8
+
9
+
10
+ @pytest.mark.regression
11
+ def test_workflow_with_assistant_with_keycloak_tool(
12
+ assistant,
13
+ workflow_with_assistant,
14
+ workflow_utils,
15
+ keycloak_integration,
16
+ similarity_check,
17
+ ):
18
+ assistant = assistant(
19
+ Toolkit.ACCESS_MANAGEMENT,
20
+ AccessManagementTool.KEYCLOAK,
21
+ settings=keycloak_integration,
22
+ )
23
+
24
+ workflow_with_assistant = workflow_with_assistant(assistant, KEYCLOAK_TOOL_PROMPT)
25
+ response = workflow_utils.execute_workflow(
26
+ workflow_with_assistant.id, assistant.name
27
+ )
28
+ similarity_check.check_similarity(response, KEYCLOAK_TOOL_RESPONSE)
@@ -0,0 +1,74 @@
1
+ import copy
2
+ import json
3
+ import random
4
+
5
+ import pytest
6
+
7
+ from codemie_test_harness.tests.enums.tools import AccessManagementTool
8
+ from codemie_test_harness.tests.test_data.direct_tools.keycloak_tool_test_data import (
9
+ KEYCLOAK_DIRECT_TOOL_PROMPT,
10
+ KEYCLOAK_DIRECT_TOOL_RESPONSE,
11
+ )
12
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
13
+
14
+
15
+ @pytest.mark.regression
16
+ @pytest.mark.skip(reason="Need to investigate codemie-tools for fix")
17
+ def test_workflow_with_keycloak_tool_direct(
18
+ keycloak_integration, workflow_utils, workflow_with_tool, similarity_check
19
+ ):
20
+ assistant_and_state_name = get_random_name()
21
+
22
+ test_workflow = workflow_with_tool(
23
+ assistant_and_state_name,
24
+ AccessManagementTool.KEYCLOAK,
25
+ integration=keycloak_integration,
26
+ )
27
+ response = workflow_utils.execute_workflow(
28
+ test_workflow.id,
29
+ assistant_and_state_name,
30
+ user_input=json.dumps(KEYCLOAK_DIRECT_TOOL_PROMPT),
31
+ )
32
+ similarity_check.check_similarity(response, KEYCLOAK_DIRECT_TOOL_RESPONSE)
33
+
34
+
35
+ @pytest.mark.regression
36
+ def test_workflow_with_keycloak_tool_with_hardcoded_args(
37
+ keycloak_integration, workflow_utils, workflow_with_tool, similarity_check
38
+ ):
39
+ assistant_and_state_name = get_random_name()
40
+
41
+ test_workflow = workflow_with_tool(
42
+ assistant_and_state_name,
43
+ AccessManagementTool.KEYCLOAK,
44
+ integration=keycloak_integration,
45
+ tool_args=KEYCLOAK_DIRECT_TOOL_PROMPT,
46
+ )
47
+ response = workflow_utils.execute_workflow(
48
+ test_workflow.id, assistant_and_state_name
49
+ )
50
+ similarity_check.check_similarity(response, KEYCLOAK_DIRECT_TOOL_RESPONSE)
51
+
52
+
53
+ @pytest.mark.regression
54
+ @pytest.mark.skip(reason="Need to investigate codemie-tools for fix")
55
+ def test_workflow_with_keycloak_tool_with_overriding_args(
56
+ keycloak_integration, workflow_utils, workflow_with_tool, similarity_check
57
+ ):
58
+ assistant_and_state_name = get_random_name()
59
+
60
+ args_copy = copy.deepcopy(KEYCLOAK_DIRECT_TOOL_PROMPT)
61
+ args_copy = {key: random.randint(1, 10) for key in args_copy}
62
+
63
+ test_workflow = workflow_with_tool(
64
+ assistant_and_state_name,
65
+ AccessManagementTool.KEYCLOAK,
66
+ integration=keycloak_integration,
67
+ tool_args=args_copy,
68
+ )
69
+ response = workflow_utils.execute_workflow(
70
+ test_workflow.id,
71
+ assistant_and_state_name,
72
+ user_input=json.dumps(KEYCLOAK_DIRECT_TOOL_PROMPT),
73
+ )
74
+ similarity_check.check_similarity(response, KEYCLOAK_DIRECT_TOOL_RESPONSE)
@@ -0,0 +1,29 @@
1
+ import pytest
2
+
3
+ from codemie_test_harness.tests.enums.tools import AccessManagementTool
4
+ from codemie_test_harness.tests.test_data.keycloak_tool_test_data import (
5
+ KEYCLOAK_TOOL_PROMPT,
6
+ KEYCLOAK_TOOL_RESPONSE,
7
+ )
8
+ from codemie_test_harness.tests.utils.base_utils import get_random_name
9
+
10
+
11
+ @pytest.mark.regression
12
+ def test_workflow_with_virtual_assistant_with_keycloak_tool(
13
+ keycloak_integration,
14
+ workflow_with_virtual_assistant,
15
+ workflow_utils,
16
+ similarity_check,
17
+ ):
18
+ assistant_and_state_name = get_random_name()
19
+
20
+ test_workflow = workflow_with_virtual_assistant(
21
+ assistant_and_state_name,
22
+ AccessManagementTool.KEYCLOAK,
23
+ integration=keycloak_integration,
24
+ task=KEYCLOAK_TOOL_PROMPT,
25
+ )
26
+ response = workflow_utils.execute_workflow(
27
+ test_workflow.id, assistant_and_state_name
28
+ )
29
+ similarity_check.check_similarity(response, KEYCLOAK_TOOL_RESPONSE)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codemie-test-harness"
3
- version = "0.1.147"
3
+ version = "0.1.148"
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.147"
15
+ codemie-sdk-python = "0.1.148"
16
16
  pytest = "^8.4.1"
17
17
  python-dotenv = "^1.1.0"
18
18
  PyHamcrest = "^2.1.0"