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.

@@ -1,7 +1,6 @@
1
1
  [pytest]
2
2
  addopts = -v
3
3
  timeout = 300
4
- timeout_method = signal
5
4
  timeout_func_only = true
6
5
  filterwarnings =
7
6
  ignore::pytest.PytestUnknownMarkWarning
@@ -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
- git_integration,
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=git_integration.id, embeddings_model=embedding_model
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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 git_integration(integration_utils):
259
- integration = integration_utils.create_integration(
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 github_integration(integration_utils):
271
+ def gitlab_integration(integration_utils):
270
272
  integration = integration_utils.create_integration(
271
273
  credential_type=CredentialTypes.GIT,
272
- credential_values=CredentialsManager.github_credentials(),
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 gitlab_integration(integration_utils):
282
+ def github_integration(integration_utils):
281
283
  integration = integration_utils.create_integration(
282
284
  credential_type=CredentialTypes.GIT,
283
- credential_values=CredentialsManager.gitlab_credentials(),
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, gitlab_integration, default_llm, similarity_check
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=gitlab_integration)],
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, git_integration):
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=git_integration.alias,
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, git_integration, default_embedding_llm
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=git_integration.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, git_integration, default_embedding_llm, client
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=git_integration.id,
32
+ setting_id=gitlab_integration.id,
33
33
  embeddings_model=default_embedding_llm.base_name,
34
34
  )
35
35
 
@@ -21,7 +21,7 @@ WORK_ITEM_ID_PATTERN = r"workItems/(\d+)"
21
21
 
22
22
  vcs_integrations = {
23
23
  VcsTool.GITHUB: "github_integration",
24
- VcsTool.GITLAB: "gitlab_integration",
24
+ VcsTool.GITLAB: "git_integration",
25
25
  }
26
26
 
27
27
  project_management_integrations = {
@@ -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
+ )
@@ -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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
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
- git_integration,
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=git_integration,
426
+ settings=gitlab_integration,
427
427
  )
428
428
 
429
429
  create_prompt = create_prompt_template(class_name)
@@ -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
- git_integration,
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=git_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
- git_integration,
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=git_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
- git_integration,
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=git_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
- git_integration,
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=git_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
- git_integration,
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=git_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
- git_integration,
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=git_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
- git_integration,
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=git_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.204
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.204)
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=jLrm1U5u6_biXfYGeSepKmO8wf75LlDcHiEnAfEQtOI,286
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=bXqupQgbSZkB__jUbcYVNaQGSv7nm1AuDMrNUW-lti8,3134
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=Kaq6QkIHIMo0kUV6HZUArcSsa5Wp06aiECUUvDTqsAs,12196
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=30SuG3L8lzloDfGG0aYgNyR7pU5WkckSaTZUny2EraY,30909
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=hnNNq4HOED4lX3ZdwQcLQTPWtsXf8LlQ8vYphx6tNIk,6604
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=2WLY52i02Yw2sKYGL4aJt7ozUzZCF_y_aLu2rp53uMo,6424
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=-1UAZ113WEMDMt9PO2e4mA_B8DpBUMVXSruQfeyeJ6Q,6424
210
- codemie_test_harness/tests/ui/datasource/test_view_datasource.py,sha256=MfO3U_QN8btoG6ILZbtv5Hqf55hmRmog9PzK4avQd_o,7769
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=ZNyM5wERHFN-c8TCvBcxCdFf0As9TOpr22YvLCMHArE,1116
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=vTOW7eSrLWFNliwLznlf1ZcjxrdQApKjIb2_V2vdYrU,14988
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=-v_3Q4FN_KTaGcOs5j8sIgiVt5ZbXjFQ8yT4M2eGQdY,14235
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.204.dist-info/METADATA,sha256=lj0LgefIzza3ffqHLGYYEUzY0JjLrW99nX8qt3p215k,27184
395
- codemie_test_harness-0.1.204.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
396
- codemie_test_harness-0.1.204.dist-info/entry_points.txt,sha256=n98t-EOM5M1mnMl_j2X4siyeO9zr0WD9a5LF7JyElIM,73
397
- codemie_test_harness-0.1.204.dist-info/RECORD,,
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,,