codemie-test-harness 0.1.204__py3-none-any.whl → 0.1.206__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of codemie-test-harness might be problematic. Click here for more details.
- codemie_test_harness/pytest.ini +0 -1
- codemie_test_harness/tests/assistant/datasource/test_code_datasource.py +2 -2
- codemie_test_harness/tests/assistant/tools/git/test_assistant_with_git_tools.py +14 -14
- codemie_test_harness/tests/conftest.py +41 -12
- codemie_test_harness/tests/e2e/test_e2e.py +2 -2
- codemie_test_harness/tests/ui/datasource/test_create_datasource.py +2 -2
- codemie_test_harness/tests/ui/datasource/test_edit_datasource.py +2 -2
- codemie_test_harness/tests/ui/datasource/test_view_datasource.py +2 -2
- codemie_test_harness/tests/utils/constants.py +1 -1
- codemie_test_harness/tests/utils/webhook_utils.py +10 -0
- codemie_test_harness/tests/webhook/__init__.py +0 -0
- codemie_test_harness/tests/webhook/test_webhook_service.py +225 -0
- codemie_test_harness/tests/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py +14 -14
- codemie_test_harness/tests/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py +14 -14
- {codemie_test_harness-0.1.204.dist-info → codemie_test_harness-0.1.206.dist-info}/METADATA +2 -2
- {codemie_test_harness-0.1.204.dist-info → codemie_test_harness-0.1.206.dist-info}/RECORD +18 -15
- {codemie_test_harness-0.1.204.dist-info → codemie_test_harness-0.1.206.dist-info}/WHEEL +0 -0
- {codemie_test_harness-0.1.204.dist-info → codemie_test_harness-0.1.206.dist-info}/entry_points.txt +0 -0
codemie_test_harness/pytest.ini
CHANGED
|
@@ -22,7 +22,7 @@ from codemie_test_harness.tests.utils.base_utils import (
|
|
|
22
22
|
ids=[f"{row[0][0]}" for row in index_test_data],
|
|
23
23
|
)
|
|
24
24
|
def test_create_index_application_with_embedding_model(
|
|
25
|
-
|
|
25
|
+
gitlab_integration,
|
|
26
26
|
datasource_utils,
|
|
27
27
|
assistant,
|
|
28
28
|
assistant_utils,
|
|
@@ -37,7 +37,7 @@ def test_create_index_application_with_embedding_model(
|
|
|
37
37
|
"""
|
|
38
38
|
|
|
39
39
|
datasource = datasource_utils.create_gitlab_datasource(
|
|
40
|
-
setting_id=
|
|
40
|
+
setting_id=gitlab_integration.id, embeddings_model=embedding_model
|
|
41
41
|
)
|
|
42
42
|
|
|
43
43
|
assistant = assistant(
|
|
@@ -31,7 +31,7 @@ def test_assistant_with_list_branch_set_active_branch_tools(
|
|
|
31
31
|
code_datasource,
|
|
32
32
|
code_context,
|
|
33
33
|
git_utils,
|
|
34
|
-
|
|
34
|
+
gitlab_integration,
|
|
35
35
|
similarity_check,
|
|
36
36
|
toolkit,
|
|
37
37
|
tool_name,
|
|
@@ -42,7 +42,7 @@ def test_assistant_with_list_branch_set_active_branch_tools(
|
|
|
42
42
|
toolkit,
|
|
43
43
|
tool_name,
|
|
44
44
|
context=code_context(code_datasource),
|
|
45
|
-
settings=
|
|
45
|
+
settings=gitlab_integration,
|
|
46
46
|
)
|
|
47
47
|
response, triggered_tools = assistant_utils.ask_assistant(
|
|
48
48
|
assistant, prompt, minimal_response=False
|
|
@@ -65,7 +65,7 @@ def test_assistant_with_create_branch_tool(
|
|
|
65
65
|
code_datasource,
|
|
66
66
|
code_context,
|
|
67
67
|
git_utils,
|
|
68
|
-
|
|
68
|
+
gitlab_integration,
|
|
69
69
|
similarity_check,
|
|
70
70
|
toolkit,
|
|
71
71
|
tool_name,
|
|
@@ -81,7 +81,7 @@ def test_assistant_with_create_branch_tool(
|
|
|
81
81
|
toolkit,
|
|
82
82
|
tool_name,
|
|
83
83
|
context=code_context(code_datasource),
|
|
84
|
-
settings=
|
|
84
|
+
settings=gitlab_integration,
|
|
85
85
|
)
|
|
86
86
|
response, triggered_tools = assistant_utils.ask_assistant(
|
|
87
87
|
assistant, prompt, minimal_response=False
|
|
@@ -114,7 +114,7 @@ def test_assistant_with_create_file_tool(
|
|
|
114
114
|
code_context,
|
|
115
115
|
code_datasource,
|
|
116
116
|
git_utils,
|
|
117
|
-
|
|
117
|
+
gitlab_integration,
|
|
118
118
|
similarity_check,
|
|
119
119
|
toolkit,
|
|
120
120
|
tool_name,
|
|
@@ -134,7 +134,7 @@ def test_assistant_with_create_file_tool(
|
|
|
134
134
|
toolkit,
|
|
135
135
|
tool_name,
|
|
136
136
|
context=code_context(code_datasource),
|
|
137
|
-
settings=
|
|
137
|
+
settings=gitlab_integration,
|
|
138
138
|
)
|
|
139
139
|
response, triggered_tools = assistant_utils.ask_assistant(
|
|
140
140
|
assistant, prompt, minimal_response=False
|
|
@@ -165,7 +165,7 @@ def test_assistant_with_create_merge_request_tool(
|
|
|
165
165
|
code_context,
|
|
166
166
|
code_datasource,
|
|
167
167
|
git_utils,
|
|
168
|
-
|
|
168
|
+
gitlab_integration,
|
|
169
169
|
similarity_check,
|
|
170
170
|
toolkit,
|
|
171
171
|
tool_name,
|
|
@@ -183,7 +183,7 @@ def test_assistant_with_create_merge_request_tool(
|
|
|
183
183
|
toolkit,
|
|
184
184
|
tool_name,
|
|
185
185
|
context=code_context(code_datasource),
|
|
186
|
-
settings=
|
|
186
|
+
settings=gitlab_integration,
|
|
187
187
|
)
|
|
188
188
|
response, triggered_tools = assistant_utils.ask_assistant(
|
|
189
189
|
assistant, prompt, minimal_response=False
|
|
@@ -211,7 +211,7 @@ def test_assistant_with_delete_file_tool(
|
|
|
211
211
|
code_context,
|
|
212
212
|
code_datasource,
|
|
213
213
|
git_utils,
|
|
214
|
-
|
|
214
|
+
gitlab_integration,
|
|
215
215
|
datasource_utils,
|
|
216
216
|
assistant_utils,
|
|
217
217
|
similarity_check,
|
|
@@ -245,7 +245,7 @@ def test_assistant_with_delete_file_tool(
|
|
|
245
245
|
toolkit,
|
|
246
246
|
tool_name,
|
|
247
247
|
context=code_context(code_datasource),
|
|
248
|
-
settings=
|
|
248
|
+
settings=gitlab_integration,
|
|
249
249
|
)
|
|
250
250
|
response, triggered_tools = assistant_utils.ask_assistant(
|
|
251
251
|
assistant, prompt, minimal_response=False
|
|
@@ -278,7 +278,7 @@ def test_assistant_with_get_merge_request_changes_tool(
|
|
|
278
278
|
code_context,
|
|
279
279
|
code_datasource,
|
|
280
280
|
git_utils,
|
|
281
|
-
|
|
281
|
+
gitlab_integration,
|
|
282
282
|
similarity_check,
|
|
283
283
|
toolkit,
|
|
284
284
|
tool_name,
|
|
@@ -296,7 +296,7 @@ def test_assistant_with_get_merge_request_changes_tool(
|
|
|
296
296
|
toolkit,
|
|
297
297
|
tool_name,
|
|
298
298
|
context=code_context(code_datasource),
|
|
299
|
-
settings=
|
|
299
|
+
settings=gitlab_integration,
|
|
300
300
|
)
|
|
301
301
|
|
|
302
302
|
create_mr_prompt = create_mr_prompt_template(source_branch, class_name, mr_name)
|
|
@@ -341,7 +341,7 @@ def test_assistant_with_update_file_tools(
|
|
|
341
341
|
code_context,
|
|
342
342
|
code_datasource,
|
|
343
343
|
git_utils,
|
|
344
|
-
|
|
344
|
+
gitlab_integration,
|
|
345
345
|
datasource_utils,
|
|
346
346
|
similarity_check,
|
|
347
347
|
toolkit,
|
|
@@ -361,7 +361,7 @@ def test_assistant_with_update_file_tools(
|
|
|
361
361
|
toolkit,
|
|
362
362
|
tool_name,
|
|
363
363
|
context=code_context(code_datasource),
|
|
364
|
-
settings=
|
|
364
|
+
settings=gitlab_integration,
|
|
365
365
|
)
|
|
366
366
|
|
|
367
367
|
create_prompt = create_prompt_template(class_name)
|
|
@@ -57,6 +57,7 @@ from codemie_test_harness.tests.utils.env_resolver import (
|
|
|
57
57
|
EnvironmentResolver,
|
|
58
58
|
get_environment,
|
|
59
59
|
)
|
|
60
|
+
from codemie_test_harness.tests.utils.webhook_utils import WebhookUtils
|
|
60
61
|
|
|
61
62
|
logger = setup_logger(__name__)
|
|
62
63
|
|
|
@@ -94,10 +95,17 @@ def pytest_configure(config):
|
|
|
94
95
|
This hook loads environment variables from .env file and optionally
|
|
95
96
|
retrieves additional configuration from AWS Parameter Store.
|
|
96
97
|
"""
|
|
98
|
+
import platform
|
|
97
99
|
from codemie_test_harness.cli.runner import resolve_tests_path_and_root
|
|
98
100
|
from codemie_test_harness.tests.utils.aws_parameters_store import AwsParameterStore
|
|
99
101
|
from codemie_test_harness.tests.utils.env_utils import EnvManager
|
|
100
102
|
|
|
103
|
+
# Set timeout method based on OS
|
|
104
|
+
# Windows requires 'thread' method, Unix-like systems can use 'signal'
|
|
105
|
+
config.option.timeout_method = (
|
|
106
|
+
"thread" if platform.system() == "Windows" else "signal"
|
|
107
|
+
)
|
|
108
|
+
|
|
101
109
|
# Resolve the root directory and .env file path
|
|
102
110
|
_, root_dir = resolve_tests_path_and_root()
|
|
103
111
|
env_file_path = Path(root_dir) / ".env"
|
|
@@ -255,21 +263,15 @@ def conversation_utils(client):
|
|
|
255
263
|
|
|
256
264
|
|
|
257
265
|
@pytest.fixture(scope="session")
|
|
258
|
-
def
|
|
259
|
-
|
|
260
|
-
credential_type=CredentialTypes.GIT,
|
|
261
|
-
credential_values=CredentialsManager.gitlab_credentials(),
|
|
262
|
-
)
|
|
263
|
-
yield integration
|
|
264
|
-
if integration:
|
|
265
|
-
integration_utils.delete_integration(integration)
|
|
266
|
+
def webhook_utils(client):
|
|
267
|
+
return WebhookUtils(client)
|
|
266
268
|
|
|
267
269
|
|
|
268
270
|
@pytest.fixture(scope="session")
|
|
269
|
-
def
|
|
271
|
+
def gitlab_integration(integration_utils):
|
|
270
272
|
integration = integration_utils.create_integration(
|
|
271
273
|
credential_type=CredentialTypes.GIT,
|
|
272
|
-
credential_values=CredentialsManager.
|
|
274
|
+
credential_values=CredentialsManager.gitlab_credentials(),
|
|
273
275
|
)
|
|
274
276
|
yield integration
|
|
275
277
|
if integration:
|
|
@@ -277,10 +279,10 @@ def github_integration(integration_utils):
|
|
|
277
279
|
|
|
278
280
|
|
|
279
281
|
@pytest.fixture(scope="session")
|
|
280
|
-
def
|
|
282
|
+
def github_integration(integration_utils):
|
|
281
283
|
integration = integration_utils.create_integration(
|
|
282
284
|
credential_type=CredentialTypes.GIT,
|
|
283
|
-
credential_values=CredentialsManager.
|
|
285
|
+
credential_values=CredentialsManager.github_credentials(),
|
|
284
286
|
)
|
|
285
287
|
yield integration
|
|
286
288
|
if integration:
|
|
@@ -409,6 +411,33 @@ def report_portal_integration(integration_utils):
|
|
|
409
411
|
integration_utils.delete_integration(integration)
|
|
410
412
|
|
|
411
413
|
|
|
414
|
+
@pytest.fixture(scope="module")
|
|
415
|
+
def webhook_integration(integration_utils):
|
|
416
|
+
created_integrations = []
|
|
417
|
+
|
|
418
|
+
def _create(webhook_id, resource_type, resource_id, is_enabled: bool = True):
|
|
419
|
+
credential_values = [
|
|
420
|
+
CredentialValues(key="url", value=CredentialsManager.AUTO_GENERATED),
|
|
421
|
+
CredentialValues(key="webhook_id", value=webhook_id),
|
|
422
|
+
CredentialValues(key="is_enabled", value=is_enabled),
|
|
423
|
+
CredentialValues(key="resource_type", value=resource_type),
|
|
424
|
+
CredentialValues(key="resource_id", value=resource_id),
|
|
425
|
+
]
|
|
426
|
+
integration = integration_utils.create_integration(
|
|
427
|
+
CredentialTypes.WEBHOOK, credential_values
|
|
428
|
+
)
|
|
429
|
+
created_integrations.append(integration)
|
|
430
|
+
return integration
|
|
431
|
+
|
|
432
|
+
yield _create
|
|
433
|
+
|
|
434
|
+
for integration in created_integrations:
|
|
435
|
+
try:
|
|
436
|
+
integration_utils.delete_integration(integration)
|
|
437
|
+
except HTTPError:
|
|
438
|
+
pass
|
|
439
|
+
|
|
440
|
+
|
|
412
441
|
@pytest.fixture(scope="function")
|
|
413
442
|
def general_integration(integration_utils):
|
|
414
443
|
created_integration: Optional[Integration] = None
|
|
@@ -65,14 +65,14 @@ def test_assistant_with_code_kb(
|
|
|
65
65
|
reason="Test is skipped when GIT_ENV is set to github",
|
|
66
66
|
)
|
|
67
67
|
def test_assistant_with_vcs_gitlab_tool(
|
|
68
|
-
assistant_utils,
|
|
68
|
+
assistant_utils, git_integration, default_llm, similarity_check
|
|
69
69
|
):
|
|
70
70
|
assistant = assistant_utils.create_assistant(
|
|
71
71
|
llm_model_type=default_llm.base_name,
|
|
72
72
|
toolkits=[
|
|
73
73
|
ToolKitDetails(
|
|
74
74
|
toolkit=Toolkit.VCS,
|
|
75
|
-
tools=[ToolDetails(name=VcsTool.GITLAB, settings=
|
|
75
|
+
tools=[ToolDetails(name=VcsTool.GITLAB, settings=git_integration)],
|
|
76
76
|
)
|
|
77
77
|
],
|
|
78
78
|
)
|
|
@@ -79,7 +79,7 @@ def test_datasource_creation_validation(page):
|
|
|
79
79
|
|
|
80
80
|
@pytest.mark.datasource
|
|
81
81
|
@pytest.mark.ui
|
|
82
|
-
def test_create_git_datasource(page,
|
|
82
|
+
def test_create_git_datasource(page, gitlab_integration):
|
|
83
83
|
"""Test creating a new datasource with all required fields."""
|
|
84
84
|
datasource_page = DataSourcePage(page)
|
|
85
85
|
create_page = CreateEditDatasourcePage(page)
|
|
@@ -89,7 +89,7 @@ def test_create_git_datasource(page, git_integration):
|
|
|
89
89
|
project_name=PROJECT,
|
|
90
90
|
repo_link=CredentialsManager.get_parameter("GITLAB_PROJECT"),
|
|
91
91
|
branch="main",
|
|
92
|
-
integration=
|
|
92
|
+
integration=gitlab_integration.alias,
|
|
93
93
|
)
|
|
94
94
|
|
|
95
95
|
datasource_page.should_see_table_row_with_values(
|
|
@@ -22,14 +22,14 @@ from codemie_test_harness.tests.utils.constants import FILES_PATH
|
|
|
22
22
|
@pytest.mark.datasource
|
|
23
23
|
@pytest.mark.ui
|
|
24
24
|
def test_edit_git_datasource(
|
|
25
|
-
page, datasource_utils,
|
|
25
|
+
page, datasource_utils, gitlab_integration, default_embedding_llm
|
|
26
26
|
):
|
|
27
27
|
"""Test that all main Edit Datasource page elements are visible."""
|
|
28
28
|
datasource_page = DataSourcePage(page)
|
|
29
29
|
edit_page = CreateEditDatasourcePage(page)
|
|
30
30
|
|
|
31
31
|
datasource = datasource_utils.create_gitlab_datasource(
|
|
32
|
-
setting_id=
|
|
32
|
+
setting_id=gitlab_integration.id,
|
|
33
33
|
embeddings_model=default_embedding_llm.base_name,
|
|
34
34
|
)
|
|
35
35
|
|
|
@@ -23,13 +23,13 @@ from codemie_test_harness.tests.utils.constants import FILES_PATH
|
|
|
23
23
|
@pytest.mark.datasource
|
|
24
24
|
@pytest.mark.ui
|
|
25
25
|
def test_view_git_datasource_page(
|
|
26
|
-
page, datasource_utils,
|
|
26
|
+
page, datasource_utils, gitlab_integration, default_embedding_llm, client
|
|
27
27
|
):
|
|
28
28
|
"""Test that all main View Datasource page elements are visible."""
|
|
29
29
|
datasource_page = DataSourcePage(page)
|
|
30
30
|
view_page = ViewDatasourcePage(page)
|
|
31
31
|
datasource = datasource_utils.create_gitlab_datasource(
|
|
32
|
-
setting_id=
|
|
32
|
+
setting_id=gitlab_integration.id,
|
|
33
33
|
embeddings_model=default_embedding_llm.base_name,
|
|
34
34
|
)
|
|
35
35
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
|
|
3
|
+
from codemie_test_harness.tests.utils.base_utils import BaseUtils
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class WebhookUtils(BaseUtils):
|
|
7
|
+
"""Utility class for webhook operations in CodeMie test harness."""
|
|
8
|
+
|
|
9
|
+
def trigger_webhook(self, webhook_id: str, data: Dict[str, Any] = None):
|
|
10
|
+
return self.client.webhook.trigger(webhook_id, data)
|
|
File without changes
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"""Webhook integration tests for CodeMie.
|
|
2
|
+
|
|
3
|
+
This module contains tests for webhook functionality including:
|
|
4
|
+
- Basic webhook operations with different resource types (assistant, workflow, datasource)
|
|
5
|
+
- Error handling and validation
|
|
6
|
+
- Webhook triggering verification
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import pytest
|
|
10
|
+
|
|
11
|
+
from codemie_sdk.models.workflow import ExecutionStatus
|
|
12
|
+
from hamcrest import (
|
|
13
|
+
assert_that,
|
|
14
|
+
equal_to,
|
|
15
|
+
greater_than,
|
|
16
|
+
has_length,
|
|
17
|
+
has_item,
|
|
18
|
+
)
|
|
19
|
+
from codemie_test_harness.tests.utils.base_utils import get_random_name, wait_for_entity
|
|
20
|
+
from codemie_test_harness.tests.ui.test_data.datasource_test_data import (
|
|
21
|
+
DataSourceStatus,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@pytest.mark.webhook
|
|
26
|
+
@pytest.mark.api
|
|
27
|
+
class TestWebhookBasicOperations:
|
|
28
|
+
"""Basic webhook operations tests - verify webhook creation and triggering for different resource types."""
|
|
29
|
+
|
|
30
|
+
def test_webhook_with_assistant(
|
|
31
|
+
self, assistant, webhook_integration, webhook_utils, conversation_utils
|
|
32
|
+
):
|
|
33
|
+
"""Test webhook can be created with assistant and triggers conversation creation."""
|
|
34
|
+
webhook_id = get_random_name()
|
|
35
|
+
message = f"Test message for {webhook_id}"
|
|
36
|
+
|
|
37
|
+
# Create assistant
|
|
38
|
+
assistant = assistant()
|
|
39
|
+
|
|
40
|
+
# Create webhook integration
|
|
41
|
+
webhook_integration(webhook_id, "assistant", assistant.id)
|
|
42
|
+
|
|
43
|
+
# Trigger webhook
|
|
44
|
+
response = webhook_utils.trigger_webhook(webhook_id, data=message)
|
|
45
|
+
assert_that(response.status_code, equal_to(200))
|
|
46
|
+
assert_that(
|
|
47
|
+
response.json()["message"], equal_to("Webhook invoked successfully")
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
# Wait for conversation
|
|
51
|
+
conversation = wait_for_entity(
|
|
52
|
+
lambda: conversation_utils.list_conversations(),
|
|
53
|
+
entity_name=f'"{message}"',
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
# Verify conversation details
|
|
57
|
+
assert_that(conversation.name.strip('"'), equal_to(message))
|
|
58
|
+
assert_that(conversation.initial_assistant_id, equal_to(assistant.id))
|
|
59
|
+
assert_that(conversation.assistant_ids, has_item(assistant.id))
|
|
60
|
+
|
|
61
|
+
def test_webhook_with_workflow(
|
|
62
|
+
self,
|
|
63
|
+
workflow_with_virtual_assistant,
|
|
64
|
+
default_llm,
|
|
65
|
+
webhook_integration,
|
|
66
|
+
webhook_utils,
|
|
67
|
+
workflow_utils,
|
|
68
|
+
):
|
|
69
|
+
"""Test webhook can be created with workflow and triggers workflow execution."""
|
|
70
|
+
webhook_id = get_random_name()
|
|
71
|
+
message = f"Test message for {webhook_id}"
|
|
72
|
+
|
|
73
|
+
# Create a simple workflow
|
|
74
|
+
workflow = workflow_with_virtual_assistant(webhook_id)
|
|
75
|
+
|
|
76
|
+
# Create webhook integration
|
|
77
|
+
webhook_integration(webhook_id, "workflow", workflow.id)
|
|
78
|
+
|
|
79
|
+
# Trigger webhook
|
|
80
|
+
response = webhook_utils.trigger_webhook(webhook_id, data=message)
|
|
81
|
+
assert_that(response.status_code, equal_to(200))
|
|
82
|
+
assert_that(
|
|
83
|
+
response.json()["message"], equal_to("Webhook invoked successfully")
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
# Verify workflow execution was created
|
|
87
|
+
executions = workflow_utils.get_executions(workflow)
|
|
88
|
+
assert_that(
|
|
89
|
+
executions,
|
|
90
|
+
has_length(greater_than(0)),
|
|
91
|
+
"Workflow execution should be created",
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
# Verify execution details
|
|
95
|
+
execution = executions[0]
|
|
96
|
+
|
|
97
|
+
assert_that(execution.prompt.strip('""'), equal_to(message))
|
|
98
|
+
assert_that(execution.workflow_id, equal_to(workflow.id))
|
|
99
|
+
assert_that(execution.status, equal_to(ExecutionStatus.IN_PROGRESS))
|
|
100
|
+
|
|
101
|
+
@pytest.mark.parametrize(
|
|
102
|
+
"datasource_fixture",
|
|
103
|
+
[
|
|
104
|
+
"jira_datasource",
|
|
105
|
+
"confluence_datasource",
|
|
106
|
+
"code_datasource",
|
|
107
|
+
],
|
|
108
|
+
)
|
|
109
|
+
def test_webhook_with_datasource(
|
|
110
|
+
self,
|
|
111
|
+
request,
|
|
112
|
+
datasource_fixture,
|
|
113
|
+
webhook_integration,
|
|
114
|
+
webhook_utils,
|
|
115
|
+
datasource_utils,
|
|
116
|
+
):
|
|
117
|
+
"""Test webhook can be created with datasource and triggers successfully.
|
|
118
|
+
|
|
119
|
+
This test verifies webhook works with datasource as the resource type.
|
|
120
|
+
After triggering the webhook, it verifies that datasource indexing is in progress.
|
|
121
|
+
|
|
122
|
+
Test is parametrized to work with different datasource types:
|
|
123
|
+
- jira_datasource
|
|
124
|
+
- confluence_datasource
|
|
125
|
+
- code_datasource
|
|
126
|
+
"""
|
|
127
|
+
|
|
128
|
+
# Get the datasource from the fixture
|
|
129
|
+
datasource = request.getfixturevalue(datasource_fixture)
|
|
130
|
+
|
|
131
|
+
# Create webhook integration with datasource
|
|
132
|
+
webhook_id = get_random_name()
|
|
133
|
+
webhook_integration(webhook_id, "datasource", datasource.id)
|
|
134
|
+
|
|
135
|
+
# Trigger webhook
|
|
136
|
+
response = webhook_utils.trigger_webhook(webhook_id)
|
|
137
|
+
assert_that(response.status_code, equal_to(200))
|
|
138
|
+
assert_that(
|
|
139
|
+
response.json()["message"], equal_to("Webhook invoked successfully")
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
# Verify datasource exists and check its status (indexing should be in progress)
|
|
143
|
+
triggered_datasource = datasource_utils.get_datasource(datasource.id)
|
|
144
|
+
|
|
145
|
+
assert_that(triggered_datasource.id, equal_to(datasource.id))
|
|
146
|
+
assert_that(triggered_datasource.name, equal_to(datasource.name))
|
|
147
|
+
assert_that(triggered_datasource.status, DataSourceStatus.FETCHING)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
@pytest.mark.webhook
|
|
151
|
+
@pytest.mark.api
|
|
152
|
+
class TestWebhookErrorHandling:
|
|
153
|
+
"""Tests for webhook error handling - invalid IDs and disabled webhooks."""
|
|
154
|
+
|
|
155
|
+
def test_webhook_trigger_with_invalid_id(self, webhook_utils):
|
|
156
|
+
"""Test that triggering webhook with invalid ID returns error."""
|
|
157
|
+
invalid_webhook_id = "non_existent_webhook_" + get_random_name()
|
|
158
|
+
|
|
159
|
+
response = webhook_utils.trigger_webhook(invalid_webhook_id)
|
|
160
|
+
|
|
161
|
+
# Should return error status code
|
|
162
|
+
assert_that(response.status_code, equal_to(500))
|
|
163
|
+
assert_that(response.json()["detail"], equal_to("Webhook processing failed"))
|
|
164
|
+
|
|
165
|
+
def test_webhook_trigger_with_disabled_webhook(
|
|
166
|
+
self, assistant, webhook_integration, webhook_utils, conversation_utils
|
|
167
|
+
):
|
|
168
|
+
"""Test that disabled webhook cannot be triggered."""
|
|
169
|
+
assistant = assistant()
|
|
170
|
+
webhook_id = get_random_name()
|
|
171
|
+
message = f"Test message for {webhook_id}"
|
|
172
|
+
|
|
173
|
+
# Create webhook in disabled state
|
|
174
|
+
webhook_integration(webhook_id, "assistant", assistant.id, is_enabled=False)
|
|
175
|
+
|
|
176
|
+
# Try to trigger disabled webhook
|
|
177
|
+
response = webhook_utils.trigger_webhook(webhook_id, data=message)
|
|
178
|
+
|
|
179
|
+
# Should return error status code (not 200) for disabled webhook
|
|
180
|
+
assert_that(response.status_code, equal_to(500))
|
|
181
|
+
assert_that(response.json()["detail"], equal_to("Webhook processing failed"))
|
|
182
|
+
|
|
183
|
+
conversations = conversation_utils.get_conversation_by_assistant_id(
|
|
184
|
+
assistant.id
|
|
185
|
+
)
|
|
186
|
+
assert_that(len(conversations), equal_to(0))
|
|
187
|
+
|
|
188
|
+
def test_webhook_invalid_resource_id(self, webhook_integration, webhook_utils):
|
|
189
|
+
"""Test webhook with invalid resource ID."""
|
|
190
|
+
webhook_id = get_random_name()
|
|
191
|
+
message = f"Test message for {webhook_id}"
|
|
192
|
+
invalid_resource_id = "invalid_resource_" + get_random_name()
|
|
193
|
+
|
|
194
|
+
# Create webhook with invalid resource ID
|
|
195
|
+
webhook_integration(webhook_id, "assistant", invalid_resource_id)
|
|
196
|
+
|
|
197
|
+
# Trigger webhook - should handle gracefully
|
|
198
|
+
response = webhook_utils.trigger_webhook(webhook_id, data=message)
|
|
199
|
+
|
|
200
|
+
assert_that(response.status_code, equal_to(500))
|
|
201
|
+
assert_that(response.json()["detail"], equal_to("Webhook processing failed"))
|
|
202
|
+
|
|
203
|
+
def test_webhook_with_file_datasource(
|
|
204
|
+
self,
|
|
205
|
+
request,
|
|
206
|
+
file_datasource,
|
|
207
|
+
webhook_integration,
|
|
208
|
+
webhook_utils,
|
|
209
|
+
datasource_utils,
|
|
210
|
+
):
|
|
211
|
+
"""Test webhook with unsupported datasource type."""
|
|
212
|
+
|
|
213
|
+
# Create webhook integration with datasource
|
|
214
|
+
webhook_id = get_random_name()
|
|
215
|
+
webhook_integration(webhook_id, "datasource", file_datasource.id)
|
|
216
|
+
|
|
217
|
+
# Trigger webhook
|
|
218
|
+
response = webhook_utils.trigger_webhook(webhook_id)
|
|
219
|
+
assert_that(response.status_code, equal_to(403))
|
|
220
|
+
assert_that(
|
|
221
|
+
response.json()["detail"],
|
|
222
|
+
equal_to(
|
|
223
|
+
"Datasource type 'knowledge_base_file' is not supported via webhook."
|
|
224
|
+
),
|
|
225
|
+
)
|
codemie_test_harness/tests/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py
CHANGED
|
@@ -30,7 +30,7 @@ def test_workflow_with_list_branch_set_active_branch_tools(
|
|
|
30
30
|
workflow_utils,
|
|
31
31
|
code_datasource,
|
|
32
32
|
code_context,
|
|
33
|
-
|
|
33
|
+
gitlab_integration,
|
|
34
34
|
similarity_check,
|
|
35
35
|
workflow_with_assistant,
|
|
36
36
|
toolkit,
|
|
@@ -42,7 +42,7 @@ def test_workflow_with_list_branch_set_active_branch_tools(
|
|
|
42
42
|
toolkit,
|
|
43
43
|
tool_name,
|
|
44
44
|
context=code_context(code_datasource),
|
|
45
|
-
settings=
|
|
45
|
+
settings=gitlab_integration,
|
|
46
46
|
)
|
|
47
47
|
workflow_with_assistant = workflow_with_assistant(assistant, prompt)
|
|
48
48
|
response = workflow_utils.execute_workflow(
|
|
@@ -74,7 +74,7 @@ def test_workflow_with_create_branch_tool(
|
|
|
74
74
|
similarity_check,
|
|
75
75
|
workflow_with_assistant,
|
|
76
76
|
git_utils,
|
|
77
|
-
|
|
77
|
+
gitlab_integration,
|
|
78
78
|
toolkit,
|
|
79
79
|
tool_name,
|
|
80
80
|
prompt_template,
|
|
@@ -89,7 +89,7 @@ def test_workflow_with_create_branch_tool(
|
|
|
89
89
|
toolkit,
|
|
90
90
|
tool_name,
|
|
91
91
|
context=code_context(code_datasource),
|
|
92
|
-
settings=
|
|
92
|
+
settings=gitlab_integration,
|
|
93
93
|
)
|
|
94
94
|
workflow_with_assistant = workflow_with_assistant(assistant, prompt)
|
|
95
95
|
response = workflow_utils.execute_workflow(
|
|
@@ -130,7 +130,7 @@ def test_workflow_with_create_file_tool(
|
|
|
130
130
|
similarity_check,
|
|
131
131
|
workflow_with_assistant,
|
|
132
132
|
git_utils,
|
|
133
|
-
|
|
133
|
+
gitlab_integration,
|
|
134
134
|
toolkit,
|
|
135
135
|
tool_name,
|
|
136
136
|
prompt_template,
|
|
@@ -149,7 +149,7 @@ def test_workflow_with_create_file_tool(
|
|
|
149
149
|
toolkit,
|
|
150
150
|
tool_name,
|
|
151
151
|
context=code_context(code_datasource),
|
|
152
|
-
settings=
|
|
152
|
+
settings=gitlab_integration,
|
|
153
153
|
)
|
|
154
154
|
workflow_with_assistant = workflow_with_assistant(assistant, prompt)
|
|
155
155
|
response = workflow_utils.execute_workflow(
|
|
@@ -188,7 +188,7 @@ def test_workflow_with_create_merge_request_tool(
|
|
|
188
188
|
similarity_check,
|
|
189
189
|
workflow_with_assistant,
|
|
190
190
|
git_utils,
|
|
191
|
-
|
|
191
|
+
gitlab_integration,
|
|
192
192
|
toolkit,
|
|
193
193
|
tool_name,
|
|
194
194
|
prompt_template,
|
|
@@ -205,7 +205,7 @@ def test_workflow_with_create_merge_request_tool(
|
|
|
205
205
|
toolkit,
|
|
206
206
|
tool_name,
|
|
207
207
|
context=code_context(code_datasource),
|
|
208
|
-
settings=
|
|
208
|
+
settings=gitlab_integration,
|
|
209
209
|
)
|
|
210
210
|
workflow_with_assistant = workflow_with_assistant(assistant, prompt)
|
|
211
211
|
response = workflow_utils.execute_workflow(
|
|
@@ -244,7 +244,7 @@ def test_workflow_with_delete_file_tool(
|
|
|
244
244
|
similarity_check,
|
|
245
245
|
workflow_with_assistant,
|
|
246
246
|
git_utils,
|
|
247
|
-
|
|
247
|
+
gitlab_integration,
|
|
248
248
|
toolkit,
|
|
249
249
|
tool_name,
|
|
250
250
|
prompt_template,
|
|
@@ -275,7 +275,7 @@ def test_workflow_with_delete_file_tool(
|
|
|
275
275
|
toolkit,
|
|
276
276
|
tool_name,
|
|
277
277
|
context=code_context(code_datasource),
|
|
278
|
-
settings=
|
|
278
|
+
settings=gitlab_integration,
|
|
279
279
|
)
|
|
280
280
|
workflow_with_assistant = workflow_with_assistant(assistant, prompt)
|
|
281
281
|
response = workflow_utils.execute_workflow(
|
|
@@ -314,7 +314,7 @@ def test_workflow_with_get_merge_request_changes_tool(
|
|
|
314
314
|
workflow_utils,
|
|
315
315
|
datasource_utils,
|
|
316
316
|
git_utils,
|
|
317
|
-
|
|
317
|
+
gitlab_integration,
|
|
318
318
|
code_datasource,
|
|
319
319
|
code_context,
|
|
320
320
|
similarity_check,
|
|
@@ -335,7 +335,7 @@ def test_workflow_with_get_merge_request_changes_tool(
|
|
|
335
335
|
toolkit,
|
|
336
336
|
tool_name,
|
|
337
337
|
context=code_context(code_datasource),
|
|
338
|
-
settings=
|
|
338
|
+
settings=gitlab_integration,
|
|
339
339
|
)
|
|
340
340
|
|
|
341
341
|
create_mr_prompt = create_mr_prompt_template(source_branch, class_name, mr_name)
|
|
@@ -401,7 +401,7 @@ def test_workflow_with_update_file_tools(
|
|
|
401
401
|
workflow_utils,
|
|
402
402
|
datasource_utils,
|
|
403
403
|
git_utils,
|
|
404
|
-
|
|
404
|
+
gitlab_integration,
|
|
405
405
|
code_datasource,
|
|
406
406
|
code_context,
|
|
407
407
|
similarity_check,
|
|
@@ -423,7 +423,7 @@ def test_workflow_with_update_file_tools(
|
|
|
423
423
|
toolkit,
|
|
424
424
|
tool_name,
|
|
425
425
|
context=code_context(code_datasource),
|
|
426
|
-
settings=
|
|
426
|
+
settings=gitlab_integration,
|
|
427
427
|
)
|
|
428
428
|
|
|
429
429
|
create_prompt = create_prompt_template(class_name)
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py
CHANGED
|
@@ -28,7 +28,7 @@ from codemie_test_harness.tests.utils.base_utils import (
|
|
|
28
28
|
)
|
|
29
29
|
def test_workflow_with_list_branch_set_active_branch_tools(
|
|
30
30
|
workflow_with_virtual_assistant,
|
|
31
|
-
|
|
31
|
+
gitlab_integration,
|
|
32
32
|
workflow_utils,
|
|
33
33
|
similarity_check,
|
|
34
34
|
code_datasource,
|
|
@@ -42,7 +42,7 @@ def test_workflow_with_list_branch_set_active_branch_tools(
|
|
|
42
42
|
test_workflow = workflow_with_virtual_assistant(
|
|
43
43
|
assistant_and_state_name,
|
|
44
44
|
tool_name,
|
|
45
|
-
integration=
|
|
45
|
+
integration=gitlab_integration,
|
|
46
46
|
task=prompt,
|
|
47
47
|
datasource_ids=[code_datasource.id],
|
|
48
48
|
)
|
|
@@ -67,7 +67,7 @@ def test_workflow_with_list_branch_set_active_branch_tools(
|
|
|
67
67
|
)
|
|
68
68
|
def test_workflow_with_create_branch_tool(
|
|
69
69
|
workflow_with_virtual_assistant,
|
|
70
|
-
|
|
70
|
+
gitlab_integration,
|
|
71
71
|
workflow_utils,
|
|
72
72
|
similarity_check,
|
|
73
73
|
git_utils,
|
|
@@ -86,7 +86,7 @@ def test_workflow_with_create_branch_tool(
|
|
|
86
86
|
test_workflow = workflow_with_virtual_assistant(
|
|
87
87
|
assistant_and_state_name,
|
|
88
88
|
tool_name,
|
|
89
|
-
integration=
|
|
89
|
+
integration=gitlab_integration,
|
|
90
90
|
task=prompt,
|
|
91
91
|
datasource_ids=[code_datasource.id],
|
|
92
92
|
)
|
|
@@ -121,7 +121,7 @@ def test_workflow_with_create_branch_tool(
|
|
|
121
121
|
)
|
|
122
122
|
def test_workflow_with_create_file_tool(
|
|
123
123
|
workflow_with_virtual_assistant,
|
|
124
|
-
|
|
124
|
+
gitlab_integration,
|
|
125
125
|
workflow_utils,
|
|
126
126
|
similarity_check,
|
|
127
127
|
git_utils,
|
|
@@ -144,7 +144,7 @@ def test_workflow_with_create_file_tool(
|
|
|
144
144
|
test_workflow = workflow_with_virtual_assistant(
|
|
145
145
|
assistant_and_state_name,
|
|
146
146
|
tool_name,
|
|
147
|
-
integration=
|
|
147
|
+
integration=gitlab_integration,
|
|
148
148
|
task=prompt,
|
|
149
149
|
datasource_ids=[code_datasource.id],
|
|
150
150
|
)
|
|
@@ -177,7 +177,7 @@ def test_workflow_with_create_file_tool(
|
|
|
177
177
|
)
|
|
178
178
|
def test_workflow_with_create_merge_request_tool(
|
|
179
179
|
workflow_with_virtual_assistant,
|
|
180
|
-
|
|
180
|
+
gitlab_integration,
|
|
181
181
|
workflow_utils,
|
|
182
182
|
similarity_check,
|
|
183
183
|
git_utils,
|
|
@@ -198,7 +198,7 @@ def test_workflow_with_create_merge_request_tool(
|
|
|
198
198
|
test_workflow = workflow_with_virtual_assistant(
|
|
199
199
|
assistant_and_state_name,
|
|
200
200
|
tool_name,
|
|
201
|
-
integration=
|
|
201
|
+
integration=gitlab_integration,
|
|
202
202
|
task=prompt,
|
|
203
203
|
datasource_ids=[code_datasource.id],
|
|
204
204
|
)
|
|
@@ -229,7 +229,7 @@ def test_workflow_with_create_merge_request_tool(
|
|
|
229
229
|
)
|
|
230
230
|
def test_workflow_with_delete_file_tool(
|
|
231
231
|
workflow_with_virtual_assistant,
|
|
232
|
-
|
|
232
|
+
gitlab_integration,
|
|
233
233
|
workflow_utils,
|
|
234
234
|
datasource_utils,
|
|
235
235
|
code_datasource,
|
|
@@ -265,7 +265,7 @@ def test_workflow_with_delete_file_tool(
|
|
|
265
265
|
test_workflow = workflow_with_virtual_assistant(
|
|
266
266
|
assistant_and_state_name,
|
|
267
267
|
tool_name,
|
|
268
|
-
integration=
|
|
268
|
+
integration=gitlab_integration,
|
|
269
269
|
task=prompt,
|
|
270
270
|
datasource_ids=[code_datasource.id],
|
|
271
271
|
)
|
|
@@ -302,7 +302,7 @@ def test_workflow_with_get_merge_request_changes_tool(
|
|
|
302
302
|
assistant,
|
|
303
303
|
assistant_utils,
|
|
304
304
|
workflow_with_virtual_assistant,
|
|
305
|
-
|
|
305
|
+
gitlab_integration,
|
|
306
306
|
workflow_utils,
|
|
307
307
|
datasource_utils,
|
|
308
308
|
git_utils,
|
|
@@ -348,7 +348,7 @@ def test_workflow_with_get_merge_request_changes_tool(
|
|
|
348
348
|
test_workflow = workflow_with_virtual_assistant(
|
|
349
349
|
assistant_and_state_name,
|
|
350
350
|
tool_name,
|
|
351
|
-
integration=
|
|
351
|
+
integration=gitlab_integration,
|
|
352
352
|
task=get_changes_prompt,
|
|
353
353
|
datasource_ids=[code_datasource.id],
|
|
354
354
|
)
|
|
@@ -379,7 +379,7 @@ def test_workflow_with_update_file_tools(
|
|
|
379
379
|
assistant,
|
|
380
380
|
assistant_utils,
|
|
381
381
|
workflow_with_virtual_assistant,
|
|
382
|
-
|
|
382
|
+
gitlab_integration,
|
|
383
383
|
workflow_utils,
|
|
384
384
|
datasource_utils,
|
|
385
385
|
git_utils,
|
|
@@ -428,7 +428,7 @@ def test_workflow_with_update_file_tools(
|
|
|
428
428
|
test_workflow = workflow_with_virtual_assistant(
|
|
429
429
|
assistant_and_state_name,
|
|
430
430
|
tool_name,
|
|
431
|
-
integration=
|
|
431
|
+
integration=gitlab_integration,
|
|
432
432
|
task=update_prompt,
|
|
433
433
|
datasource_ids=[code_datasource.id],
|
|
434
434
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: codemie-test-harness
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.206
|
|
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.206)
|
|
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-repeat (>=0.9.3,<0.10.0)
|
|
@@ -12,11 +12,11 @@ codemie_test_harness/cli/constants.py,sha256=evjLKRhV8Qi1vSobKrKgrUb1RoAU-gFHA0H
|
|
|
12
12
|
codemie_test_harness/cli/marks_utils.py,sha256=CGAIMWO7EqApYTl3qMxBkREjA3yOQOQGjqgbxQ6bL1s,11164
|
|
13
13
|
codemie_test_harness/cli/runner.py,sha256=ZQNKwD98SWcSXOXeVtK39q-cdPWnFLwwUHPDua-4s5w,3954
|
|
14
14
|
codemie_test_harness/cli/utils.py,sha256=1X7XPcYAgeH1BpwKo4sOk1VpYdxda15usi9U9_dv7BY,1557
|
|
15
|
-
codemie_test_harness/pytest.ini,sha256=
|
|
15
|
+
codemie_test_harness/pytest.ini,sha256=U5XqIpaeJ7OQE7yYBVqoM63bA2F8N1Hr-hIe5lARwz0,262
|
|
16
16
|
codemie_test_harness/tests/__init__.py,sha256=CX5mbH_1RzwetK14moYQ0KCoUBPQMGkI14Fg8tAUJ0A,782
|
|
17
17
|
codemie_test_harness/tests/assistant/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
18
|
codemie_test_harness/tests/assistant/datasource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
-
codemie_test_harness/tests/assistant/datasource/test_code_datasource.py,sha256=
|
|
19
|
+
codemie_test_harness/tests/assistant/datasource/test_code_datasource.py,sha256=NoEduPw86Y2TocvU-6_hHNDDQZUDWP-aT_6i89rKFEE,3140
|
|
20
20
|
codemie_test_harness/tests/assistant/datasource/test_confluence_datasource.py,sha256=QHDnt3ktbEha_-jl79T15Qam9iTd8V1cW8yMkQwA2qA,3943
|
|
21
21
|
codemie_test_harness/tests/assistant/datasource/test_file_indexing.py,sha256=LPXefMjBi-CFHPtHis4MKQ98a8eleFu4sRw7-7_iKBQ,6038
|
|
22
22
|
codemie_test_harness/tests/assistant/datasource/test_google_datasource.py,sha256=zdhHUxM94Et48RPG9Bminn8HX3YY_VoNWJjMljd_xz0,2738
|
|
@@ -42,7 +42,7 @@ codemie_test_harness/tests/assistant/tools/datamanagement/test_assistant_with_da
|
|
|
42
42
|
codemie_test_harness/tests/assistant/tools/filemanagement/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
43
|
codemie_test_harness/tests/assistant/tools/filemanagement/test_assistant_with_file_management_tools.py,sha256=TIITX4AJ2SbyJ3qzK5I3deRrczF5-_vA7hs6d6BGLrg,4809
|
|
44
44
|
codemie_test_harness/tests/assistant/tools/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
-
codemie_test_harness/tests/assistant/tools/git/test_assistant_with_git_tools.py,sha256=
|
|
45
|
+
codemie_test_harness/tests/assistant/tools/git/test_assistant_with_git_tools.py,sha256=hzRVWfWfso61wHFuGDrxgNhlPxozzDlLrneq3DMSkxc,12238
|
|
46
46
|
codemie_test_harness/tests/assistant/tools/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
47
|
codemie_test_harness/tests/assistant/tools/mcp/test_cli_mcp_server.py,sha256=SCEf5koVICJYRv5Du3TT0viAPmWojgHO8PX5ZVGPCrE,2761
|
|
48
48
|
codemie_test_harness/tests/assistant/tools/mcp/test_mcp_servers.py,sha256=omH5BVtyOZqlqX9NOfWelJ93geLSTVQXropCMAhAkiA,1568
|
|
@@ -64,11 +64,11 @@ codemie_test_harness/tests/assistant/tools/servicenow/__init__.py,sha256=47DEQpj
|
|
|
64
64
|
codemie_test_harness/tests/assistant/tools/servicenow/test_servicenow_tools.py,sha256=aUjfZ4773WoQJjcHx3JqH5e8ckaKB-aIMO-OZWTm0Ek,888
|
|
65
65
|
codemie_test_harness/tests/assistant/tools/vcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
66
|
codemie_test_harness/tests/assistant/tools/vcs/test_assistant_with_vcs_tools.py,sha256=c9cZXxMo0YFVJLWdYt23Awy2PqTnNxp0uLLCgk8k2iQ,1143
|
|
67
|
-
codemie_test_harness/tests/conftest.py,sha256=
|
|
67
|
+
codemie_test_harness/tests/conftest.py,sha256=0VlSE9bKnArjEQ0_OEB2NFxDOWsnWHy-MK5ftHuAaSo,31936
|
|
68
68
|
codemie_test_harness/tests/conversations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
69
|
codemie_test_harness/tests/conversations/test_conversations_endpoints.py,sha256=HQ2nu9lXfRNkyJhA0rzar7Rmv6pMe-te0rFYAy-X5UA,4128
|
|
70
70
|
codemie_test_harness/tests/e2e/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
-
codemie_test_harness/tests/e2e/test_e2e.py,sha256=
|
|
71
|
+
codemie_test_harness/tests/e2e/test_e2e.py,sha256=BjBzyCeZCSGE1iGhjdYKBo6pMwimZ26tfURA1AinzGg,6598
|
|
72
72
|
codemie_test_harness/tests/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
73
|
codemie_test_harness/tests/enums/environment.py,sha256=p1qAX5kGZ83eZVZf1xE2OMaJ6Br8AWcudKrPQCY1Zms,3099
|
|
74
74
|
codemie_test_harness/tests/enums/integrations.py,sha256=L4sItzBjFBR65gMCebSYchADjwxmTtpEWQZvxd9aSnU,188
|
|
@@ -204,10 +204,10 @@ codemie_test_harness/tests/ui/chats/test_chat_configuration.py,sha256=9nmHA_fzxv
|
|
|
204
204
|
codemie_test_harness/tests/ui/chats/test_chat_functionality.py,sha256=DLql4eYXOW_mbmvHtcWqbgdhc3agCglDi7jjxF8fjGg,7675
|
|
205
205
|
codemie_test_harness/tests/ui/conftest.py,sha256=6IQqjL7pbnqXn9-Dr_mY4lD36VtOHw4LILjYD3LX6_s,5128
|
|
206
206
|
codemie_test_harness/tests/ui/datasource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
207
|
-
codemie_test_harness/tests/ui/datasource/test_create_datasource.py,sha256=
|
|
207
|
+
codemie_test_harness/tests/ui/datasource/test_create_datasource.py,sha256=of6SoKuZPyC_RCMxcln9uVrBXF7sk1pn0rihZioQTes,6430
|
|
208
208
|
codemie_test_harness/tests/ui/datasource/test_datasource_page.py,sha256=X1f5XuGc30Xxlq4LnVAFDgdG8n8FUQoFShU6JOE2WVY,2325
|
|
209
|
-
codemie_test_harness/tests/ui/datasource/test_edit_datasource.py,sha256
|
|
210
|
-
codemie_test_harness/tests/ui/datasource/test_view_datasource.py,sha256=
|
|
209
|
+
codemie_test_harness/tests/ui/datasource/test_edit_datasource.py,sha256=ipYVkvQlwx3rFsK5_U2qIfmM-0-2RpI4lNSahOqVHLE,6430
|
|
210
|
+
codemie_test_harness/tests/ui/datasource/test_view_datasource.py,sha256=0yprvPfL5FMcvGbserKVApGMzynoObbnCg9dMdwBqr4,7775
|
|
211
211
|
codemie_test_harness/tests/ui/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
212
212
|
codemie_test_harness/tests/ui/integrations/test_create_integration.py,sha256=esndMHGdpJbKEjHNd8fvhhzWD0W5-wEhmlF0hiRwXnw,11934
|
|
213
213
|
codemie_test_harness/tests/ui/pageobject/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -265,7 +265,7 @@ codemie_test_harness/tests/utils/assistant_utils.py,sha256=2s1MikCfIcM3Ulkcuwaed
|
|
|
265
265
|
codemie_test_harness/tests/utils/aws_parameters_store.py,sha256=YAVpvwElkKZJZvzSVxtOue1Gjs-kvSBS2y5QvIlz484,3267
|
|
266
266
|
codemie_test_harness/tests/utils/base_utils.py,sha256=SJV-m8KuC6MAU4W5a1sWLz6Nw-1-buc0f-W1hbA1OIY,8270
|
|
267
267
|
codemie_test_harness/tests/utils/client_factory.py,sha256=xGta0ZaVYzWfwJ4cu3f89KkGc_R5Bq-9lqnhr57x_2w,972
|
|
268
|
-
codemie_test_harness/tests/utils/constants.py,sha256=
|
|
268
|
+
codemie_test_harness/tests/utils/constants.py,sha256=JsyAX7PCtDCQaj_hij_dBO0Dt6bALF_DyujzKXfW2uQ,1113
|
|
269
269
|
codemie_test_harness/tests/utils/conversation_utils.py,sha256=SWj6TBWOQoX5Yh6Wk63yHQFveRXgK1mpLb3PUKAa57A,648
|
|
270
270
|
codemie_test_harness/tests/utils/credentials_manager.py,sha256=xF7fjQbT4b1rPrOOQfo3ie5c06FLjUzppvTaJDVOg2s,55252
|
|
271
271
|
codemie_test_harness/tests/utils/datasource_utils.py,sha256=7I37BBD-ySvH9u-y9wjposohqXZG8ksx2CGvbsHK3WY,12707
|
|
@@ -284,8 +284,11 @@ codemie_test_harness/tests/utils/pytest_utils.py,sha256=k-mEjX2qpnh37sqKpJqYhZT6
|
|
|
284
284
|
codemie_test_harness/tests/utils/search_utils.py,sha256=SrXiB2d9wiI5ka9bgg0CD73GOX_1mqi2Hz5FBm5DsEU,1435
|
|
285
285
|
codemie_test_harness/tests/utils/similarity_check.py,sha256=1U66NGh6esISKABodtVobE2WnuFt0f6vcK3qUri6ZqU,1485
|
|
286
286
|
codemie_test_harness/tests/utils/user_utils.py,sha256=zJNrmL3Fb7iGuaVRobUMwJ2Og6NqEPcM_9lw60m18T8,242
|
|
287
|
+
codemie_test_harness/tests/utils/webhook_utils.py,sha256=YjyLwAqQjR12vYFOUmYhJCJIyZvKm4SvU-1oIjIYNqg,340
|
|
287
288
|
codemie_test_harness/tests/utils/workflow_utils.py,sha256=Kz4F4Xzdx42PNmye--ENpjSakdB1Y-QL_nwSfKhMAXE,9359
|
|
288
289
|
codemie_test_harness/tests/utils/yaml_utils.py,sha256=y9fUf4u4G4SoCktPOwaC5x71iaDKhktbz_XUfI9kNis,1661
|
|
290
|
+
codemie_test_harness/tests/webhook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
291
|
+
codemie_test_harness/tests/webhook/test_webhook_service.py,sha256=POmxQG0tpcNW9-yKQ62CcnQpUEFYlTOs0_4H9MijIHY,8127
|
|
289
292
|
codemie_test_harness/tests/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
290
293
|
codemie_test_harness/tests/workflow/assistant_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
291
294
|
codemie_test_harness/tests/workflow/assistant_tools/access_management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -307,7 +310,7 @@ codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_de
|
|
|
307
310
|
codemie_test_harness/tests/workflow/assistant_tools/file_management/__init__.py,sha256=gdro-sbQYZMXgou3dzJw2sqqdS8o7_N41ej5qCA-3v0,53
|
|
308
311
|
codemie_test_harness/tests/workflow/assistant_tools/file_management/test_workflow_with_assistant_with_file_management_tools.py,sha256=sfw-85g7UNiNiKJIjUb9VAP5Ea_zQa1OlAtggeMhI4Q,7991
|
|
309
312
|
codemie_test_harness/tests/workflow/assistant_tools/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
310
|
-
codemie_test_harness/tests/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py,sha256=
|
|
313
|
+
codemie_test_harness/tests/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py,sha256=H2fE9F3zKuiNo04Zx6IaWbUd-mtmi7rX9KN1PHw0bgQ,15030
|
|
311
314
|
codemie_test_harness/tests/workflow/assistant_tools/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
312
315
|
codemie_test_harness/tests/workflow/assistant_tools/mcp/test_workflow_with_assistant_with_mcp_server.py,sha256=_tj5IP5Qy0tNI69hdDd5Cuecwu4Xz5dyrMCdvfnRQDs,3330
|
|
313
316
|
codemie_test_harness/tests/workflow/assistant_tools/notification/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -371,7 +374,7 @@ codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations
|
|
|
371
374
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/__init__.py,sha256=gdro-sbQYZMXgou3dzJw2sqqdS8o7_N41ej5qCA-3v0,53
|
|
372
375
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/test_workflow_with_file_management_tools.py,sha256=odaLg7Jdo04jTyq6mduN0PHmDNARXl1gyKxyGN-px1I,8625
|
|
373
376
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
374
|
-
codemie_test_harness/tests/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py,sha256
|
|
377
|
+
codemie_test_harness/tests/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py,sha256=AC4xZvkZPAHBi5uraub4EXHof15juaEJN6dbT1Eezpg,14277
|
|
375
378
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
376
379
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp/test_workflow_with_mcp_server.py,sha256=qIIrKKIa0copWSUOcP87_YEFV1QpKs7OqsAAcVXF2uM,3560
|
|
377
380
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/notification/__init__.py,sha256=hUDnGT_v3FoV6qsGpdACg_DfBFlfuubj8FjZLiuMrt0,50
|
|
@@ -391,7 +394,7 @@ codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/__init__.
|
|
|
391
394
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py,sha256=D835gaRbCnB4va5mi9TdA_u9StSpGXQ_fgzwW0S2pwo,1173
|
|
392
395
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
393
396
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/test_workflow_with_vcs_tools.py,sha256=Se9imIiBYuJU78m1pLu0g4ZmHygKZjr6JjIWkGXTy1Q,1364
|
|
394
|
-
codemie_test_harness-0.1.
|
|
395
|
-
codemie_test_harness-0.1.
|
|
396
|
-
codemie_test_harness-0.1.
|
|
397
|
-
codemie_test_harness-0.1.
|
|
397
|
+
codemie_test_harness-0.1.206.dist-info/METADATA,sha256=QHYfvt1Zgh52f8eMpYbKwPkrAH0tBL0Ycmv3mlEMR50,27184
|
|
398
|
+
codemie_test_harness-0.1.206.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
399
|
+
codemie_test_harness-0.1.206.dist-info/entry_points.txt,sha256=n98t-EOM5M1mnMl_j2X4siyeO9zr0WD9a5LF7JyElIM,73
|
|
400
|
+
codemie_test_harness-0.1.206.dist-info/RECORD,,
|
|
File without changes
|
{codemie_test_harness-0.1.204.dist-info → codemie_test_harness-0.1.206.dist-info}/entry_points.txt
RENAMED
|
File without changes
|