codemie-test-harness 0.1.221__py3-none-any.whl → 0.1.223__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.

@@ -0,0 +1,341 @@
1
+ """Tests for vendor workflow SDK endpoints.
2
+
3
+ Architecture:
4
+ - Parametrized tests that support multiple vendors (AWS, Azure, GCP)
5
+ - Extensible design for easy addition of new vendors
6
+ - Uses integration fixture factory for consistent setup
7
+ - Each test validates a specific SDK endpoint
8
+ """
9
+
10
+ import pytest
11
+ from hamcrest import (
12
+ assert_that,
13
+ is_not,
14
+ none,
15
+ empty,
16
+ greater_than,
17
+ instance_of,
18
+ has_length,
19
+ is_,
20
+ )
21
+ from codemie_sdk.models.vendor_workflow import (
22
+ VendorWorkflowSettingsResponse,
23
+ VendorWorkflowsResponse,
24
+ VendorWorkflow,
25
+ VendorWorkflowAliasesResponse,
26
+ VendorWorkflowInstallRequest,
27
+ VendorWorkflowInstallResponse,
28
+ VendorWorkflowUninstallResponse,
29
+ VendorWorkflowStatus,
30
+ )
31
+ from codemie_test_harness.tests.test_data.vendor_endpoint_test_data import (
32
+ vendor_endpoint_test_data,
33
+ )
34
+
35
+
36
+ @pytest.mark.vendor
37
+ @pytest.mark.api
38
+ @pytest.mark.parametrize(
39
+ "vendor_type,credential_type,credentials",
40
+ vendor_endpoint_test_data,
41
+ )
42
+ def test_get_workflow_settings(
43
+ vendor_workflow_utils, integration, vendor_type, credential_type, credentials
44
+ ):
45
+ """Test GET /v1/vendors/{vendor}/workflows/settings endpoint."""
46
+ _integration = integration(credential_type, credentials)
47
+
48
+ settings_response = vendor_workflow_utils.get_workflow_settings(vendor=vendor_type)
49
+
50
+ assert_that(settings_response, instance_of(VendorWorkflowSettingsResponse))
51
+ assert_that(settings_response.data, is_not(none()))
52
+ assert_that(settings_response.pagination, is_not(none()))
53
+ assert_that(settings_response.data, is_not(empty()))
54
+ assert_that(settings_response.pagination.total, greater_than(0))
55
+
56
+ created_setting = vendor_workflow_utils.find_setting_for_integration(
57
+ vendor=vendor_type,
58
+ integration_id=_integration.id,
59
+ )
60
+ assert_that(created_setting, is_not(none()))
61
+
62
+
63
+ @pytest.mark.vendor
64
+ @pytest.mark.api
65
+ @pytest.mark.parametrize(
66
+ "vendor_type,credential_type,credentials",
67
+ vendor_endpoint_test_data,
68
+ )
69
+ def test_get_workflows(
70
+ vendor_workflow_utils, integration, vendor_type, credential_type, credentials
71
+ ):
72
+ """Test GET /v1/vendors/{vendor}/workflows endpoint."""
73
+ _integration = integration(credential_type, credentials)
74
+
75
+ setting = vendor_workflow_utils.find_setting_for_integration(
76
+ vendor=vendor_type,
77
+ integration_id=_integration.id,
78
+ )
79
+ assert_that(setting, is_not(none()))
80
+
81
+ workflows_response = vendor_workflow_utils.get_workflows(
82
+ vendor=vendor_type,
83
+ setting_id=setting.setting_id,
84
+ )
85
+
86
+ assert_that(workflows_response, instance_of(VendorWorkflowsResponse))
87
+ assert_that(workflows_response.data, is_not(none()))
88
+ assert_that(workflows_response.pagination, is_not(none()))
89
+ assert_that(workflows_response.data, is_not(empty()))
90
+
91
+ _workflow = vendor_workflow_utils.get_prepared_workflow(workflows_response.data)
92
+
93
+ assert_that(_workflow.id, is_not(none()))
94
+ assert_that(_workflow.name, is_not(none()))
95
+ assert_that(_workflow.status, is_(VendorWorkflowStatus.PREPARED))
96
+ assert_that(_workflow.description, is_not(none()))
97
+ assert_that(_workflow.version, is_not(none()))
98
+ assert_that(_workflow.createdAt, is_not(none()))
99
+ assert_that(_workflow.updatedAt, is_not(none()))
100
+
101
+
102
+ @pytest.mark.vendor
103
+ @pytest.mark.api
104
+ @pytest.mark.parametrize(
105
+ "vendor_type,credential_type,credentials",
106
+ vendor_endpoint_test_data,
107
+ )
108
+ def test_get_workflow(
109
+ vendor_workflow_utils, integration, vendor_type, credential_type, credentials
110
+ ):
111
+ """Test GET /v1/vendors/{vendor}/workflows/{workflow_id} endpoint."""
112
+ _integration = integration(credential_type, credentials)
113
+
114
+ setting = vendor_workflow_utils.find_setting_for_integration(
115
+ vendor=vendor_type,
116
+ integration_id=_integration.id,
117
+ )
118
+ assert_that(setting, is_not(none()))
119
+
120
+ workflows_response = vendor_workflow_utils.get_workflows(
121
+ vendor=vendor_type,
122
+ setting_id=setting.setting_id,
123
+ )
124
+ assert_that(workflows_response.data, is_not(empty()))
125
+
126
+ first_workflow = vendor_workflow_utils.get_prepared_workflow(
127
+ workflows_response.data
128
+ )
129
+
130
+ _workflow = vendor_workflow_utils.get_workflow(
131
+ vendor=vendor_type,
132
+ workflow_id=first_workflow.id,
133
+ setting_id=setting.setting_id,
134
+ )
135
+
136
+ assert_that(_workflow, instance_of(VendorWorkflow))
137
+ assert_that(_workflow.id, is_(first_workflow.id))
138
+ assert_that(_workflow.name, is_not(none()))
139
+ assert_that(_workflow.status, is_(VendorWorkflowStatus.PREPARED))
140
+ assert_that(_workflow.description, is_not(none()))
141
+ assert_that(_workflow.version, is_not(none()))
142
+ assert_that(_workflow.createdAt, is_not(none()))
143
+ assert_that(_workflow.updatedAt, is_not(none()))
144
+
145
+
146
+ @pytest.mark.vendor
147
+ @pytest.mark.api
148
+ @pytest.mark.parametrize(
149
+ "vendor_type,credential_type,credentials",
150
+ vendor_endpoint_test_data,
151
+ )
152
+ def test_get_workflow_aliases(
153
+ vendor_workflow_utils, integration, vendor_type, credential_type, credentials
154
+ ):
155
+ """Test GET /v1/vendors/{vendor}/workflows/{workflow_id}/aliases endpoint."""
156
+ _integration = integration(credential_type, credentials)
157
+
158
+ setting = vendor_workflow_utils.find_setting_for_integration(
159
+ vendor=vendor_type,
160
+ integration_id=_integration.id,
161
+ )
162
+ assert_that(setting, is_not(none()))
163
+
164
+ workflows_response = vendor_workflow_utils.get_workflows(
165
+ vendor=vendor_type,
166
+ setting_id=setting.setting_id,
167
+ )
168
+ assert_that(workflows_response.data, is_not(empty()))
169
+
170
+ first_workflow = vendor_workflow_utils.get_prepared_workflow(
171
+ workflows_response.data
172
+ )
173
+
174
+ aliases_response = vendor_workflow_utils.get_workflow_aliases(
175
+ vendor=vendor_type,
176
+ workflow_id=first_workflow.id,
177
+ setting_id=setting.setting_id,
178
+ )
179
+
180
+ assert_that(aliases_response, instance_of(VendorWorkflowAliasesResponse))
181
+ assert_that(aliases_response.data, is_not(none()))
182
+ assert_that(aliases_response.pagination, is_not(none()))
183
+ assert_that(aliases_response.data, is_not(empty()))
184
+
185
+ first_alias = aliases_response.data[0]
186
+ assert_that(first_alias.id, is_not(none()))
187
+ assert_that(first_alias.name, is_not(none()))
188
+ assert_that(first_alias.status, is_not(none()))
189
+ assert_that(first_alias.description, is_not(none()))
190
+ assert_that(first_alias.version, is_not(none()))
191
+ assert_that(first_alias.createdAt, is_not(none()))
192
+ assert_that(first_alias.updatedAt, is_not(none()))
193
+
194
+
195
+ @pytest.mark.vendor
196
+ @pytest.mark.api
197
+ @pytest.mark.parametrize(
198
+ "vendor_type,credential_type,credentials",
199
+ vendor_endpoint_test_data,
200
+ )
201
+ def test_install_workflows(
202
+ vendor_workflow_utils, integration, vendor_type, credential_type, credentials
203
+ ):
204
+ """Test POST /v1/vendors/{vendor}/workflows endpoint."""
205
+ _integration = integration(credential_type, credentials)
206
+
207
+ setting = vendor_workflow_utils.find_setting_for_integration(
208
+ vendor=vendor_type,
209
+ integration_id=_integration.id,
210
+ )
211
+ assert_that(setting, is_not(none()))
212
+
213
+ result = vendor_workflow_utils.find_first_available_workflow(
214
+ vendor=vendor_type,
215
+ setting_id=setting.setting_id,
216
+ )
217
+ assert_that(result, is_not(none()))
218
+
219
+ _workflow, alias_id = result
220
+
221
+ install_request = VendorWorkflowInstallRequest(
222
+ id=_workflow.id,
223
+ flowAliasId=alias_id,
224
+ setting_id=setting.setting_id,
225
+ )
226
+
227
+ install_response = vendor_workflow_utils.install_workflows(
228
+ vendor=vendor_type,
229
+ workflows=[install_request],
230
+ )
231
+
232
+ assert_that(install_response, instance_of(VendorWorkflowInstallResponse))
233
+ assert_that(install_response.summary, is_not(empty()))
234
+ assert_that(install_response.summary, has_length(1))
235
+
236
+ installed = install_response.summary[0]
237
+ assert_that(installed.flowId, is_(_workflow.id))
238
+ assert_that(installed.flowAliasId, is_(alias_id))
239
+ assert_that(installed.aiRunId, is_not(none()))
240
+
241
+
242
+ @pytest.mark.vendor
243
+ @pytest.mark.api
244
+ @pytest.mark.parametrize(
245
+ "vendor_type,credential_type,credentials",
246
+ vendor_endpoint_test_data,
247
+ )
248
+ def test_uninstall_workflow(
249
+ vendor_workflow_utils, integration, vendor_type, credential_type, credentials
250
+ ):
251
+ """Test DELETE /v1/vendors/{vendor}/workflows/{ai_run_id} endpoint."""
252
+ _integration = integration(credential_type, credentials)
253
+
254
+ setting = vendor_workflow_utils.find_setting_for_integration(
255
+ vendor=vendor_type,
256
+ integration_id=_integration.id,
257
+ )
258
+ assert_that(setting, is_not(none()))
259
+
260
+ codemie_id = vendor_workflow_utils.install_first_available_workflow(
261
+ vendor=vendor_type,
262
+ setting_id=setting.setting_id,
263
+ )
264
+ assert_that(codemie_id, is_not(none()))
265
+
266
+ uninstall_response = vendor_workflow_utils.uninstall_workflow(
267
+ vendor=vendor_type,
268
+ codemie_id=codemie_id,
269
+ )
270
+
271
+ assert_that(uninstall_response, instance_of(VendorWorkflowUninstallResponse))
272
+ assert_that(uninstall_response.success, is_(True))
273
+
274
+
275
+ @pytest.mark.vendor
276
+ @pytest.mark.api
277
+ @pytest.mark.parametrize(
278
+ "vendor_type,credential_type,credentials",
279
+ vendor_endpoint_test_data,
280
+ )
281
+ def test_get_workflow_settings_pagination(
282
+ vendor_workflow_utils, integration, vendor_type, credential_type, credentials
283
+ ):
284
+ """Test pagination functionality for get_workflow_settings endpoint."""
285
+ first_page = vendor_workflow_utils.get_workflow_settings(
286
+ vendor=vendor_type,
287
+ page=0,
288
+ per_page=2,
289
+ )
290
+
291
+ assert_that(first_page.pagination.page, is_(0))
292
+ assert_that(first_page.pagination.per_page, is_(2))
293
+ assert_that(first_page.pagination.total, greater_than(0))
294
+
295
+ if first_page.pagination.pages > 1:
296
+ second_page = vendor_workflow_utils.get_workflow_settings(
297
+ vendor=vendor_type,
298
+ page=1,
299
+ per_page=2,
300
+ )
301
+ assert_that(second_page.pagination.page, is_(1))
302
+ assert_that(second_page.data, is_not(empty()))
303
+
304
+
305
+ @pytest.mark.vendor
306
+ @pytest.mark.api
307
+ @pytest.mark.parametrize(
308
+ "vendor_type,credential_type,credentials",
309
+ vendor_endpoint_test_data,
310
+ )
311
+ def test_get_workflows_pagination(
312
+ vendor_workflow_utils, integration, vendor_type, credential_type, credentials
313
+ ):
314
+ """Test pagination functionality for get_workflows endpoint using next_token."""
315
+ _integration = integration(credential_type, credentials)
316
+
317
+ setting = vendor_workflow_utils.find_setting_for_integration(
318
+ vendor=vendor_type,
319
+ integration_id=_integration.id,
320
+ )
321
+ assert_that(setting, is_not(none()))
322
+
323
+ first_page = vendor_workflow_utils.get_workflows(
324
+ vendor=vendor_type,
325
+ setting_id=setting.setting_id,
326
+ per_page=2,
327
+ )
328
+
329
+ assert_that(first_page.data, is_not(empty()))
330
+
331
+ if first_page.pagination.next_token:
332
+ second_page = vendor_workflow_utils.get_workflows(
333
+ vendor=vendor_type,
334
+ setting_id=setting.setting_id,
335
+ per_page=2,
336
+ next_token=first_page.pagination.next_token,
337
+ )
338
+ assert_that(second_page.data, is_not(empty()))
339
+ first_page_ids = {w.id for w in first_page.data}
340
+ second_page_ids = {w.id for w in second_page.data}
341
+ assert_that(first_page_ids.intersection(second_page_ids), is_(set()))
@@ -0,0 +1,63 @@
1
+ import pytest
2
+ from hamcrest import assert_that, is_not, none, is_
3
+
4
+ from codemie_test_harness.tests.test_data.vendor_workflow_test_data import (
5
+ vendor_workflow_test_data,
6
+ )
7
+
8
+
9
+ @pytest.mark.vendor
10
+ @pytest.mark.workflow
11
+ @pytest.mark.api
12
+ @pytest.mark.parametrize(
13
+ "vendor_type,credential_type,credentials,workflow_name,user_input,expected_response",
14
+ vendor_workflow_test_data,
15
+ )
16
+ def test_vendor_workflow_installation_and_execution(
17
+ vendor_workflow_utils,
18
+ integration,
19
+ workflow_utils,
20
+ similarity_check,
21
+ vendor_type,
22
+ credential_type,
23
+ credentials,
24
+ workflow_name,
25
+ user_input,
26
+ expected_response,
27
+ ):
28
+ """Test vendor workflow installation and execution functionality."""
29
+ _integration = integration(credential_type, credentials)
30
+
31
+ setting = vendor_workflow_utils.find_setting_for_integration(
32
+ vendor=vendor_type,
33
+ integration_id=_integration.id,
34
+ )
35
+ assert_that(setting, is_not(none()))
36
+ assert_that(setting.invalid or False, is_(False))
37
+
38
+ codemie_id = vendor_workflow_utils.install_workflow_by_name(
39
+ vendor=vendor_type,
40
+ setting_id=setting.setting_id,
41
+ workflow_name=workflow_name,
42
+ )
43
+ assert_that(codemie_id, is_not(none()))
44
+
45
+ class WorkflowIdWrapper:
46
+ def __init__(self, workflow_id):
47
+ self.id = workflow_id
48
+
49
+ workflow_wrapper = WorkflowIdWrapper(codemie_id)
50
+
51
+ response = workflow_utils.execute_workflow(
52
+ workflow=workflow_wrapper.id,
53
+ execution_name="BedrockFlowNode",
54
+ user_input=user_input,
55
+ )
56
+
57
+ similarity_check.check_similarity(response, expected_response)
58
+
59
+ uninstall_response = vendor_workflow_utils.uninstall_workflow(
60
+ vendor=vendor_type,
61
+ codemie_id=codemie_id,
62
+ )
63
+ assert_that(uninstall_response.success, is_(True))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: codemie-test-harness
3
- Version: 0.1.221
3
+ Version: 0.1.223
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.221)
16
+ Requires-Dist: codemie-sdk-python (==0.1.223)
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)
@@ -65,7 +65,7 @@ codemie_test_harness/tests/assistant/tools/servicenow/__init__.py,sha256=47DEQpj
65
65
  codemie_test_harness/tests/assistant/tools/servicenow/test_servicenow_tools.py,sha256=aUjfZ4773WoQJjcHx3JqH5e8ckaKB-aIMO-OZWTm0Ek,888
66
66
  codemie_test_harness/tests/assistant/tools/vcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
67
  codemie_test_harness/tests/assistant/tools/vcs/test_assistant_with_vcs_tools.py,sha256=qOPr4XOh2rgUV2MXMxkRzRGkAKl9ViwQGCZ-dMEtscU,1145
68
- codemie_test_harness/tests/conftest.py,sha256=FH6xBlPTjU6wlHNZSJAxbNvYCjICZq3SRWMCEAKvF2c,33929
68
+ codemie_test_harness/tests/conftest.py,sha256=oFH8KXi67CR1sRchq71u-eTFOyHown9W1Bp-wuGwc5E,34463
69
69
  codemie_test_harness/tests/conversations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
70
  codemie_test_harness/tests/conversations/test_conversations_endpoints.py,sha256=HQ2nu9lXfRNkyJhA0rzar7Rmv6pMe-te0rFYAy-X5UA,4128
71
71
  codemie_test_harness/tests/e2e/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -170,6 +170,9 @@ codemie_test_harness/tests/test_data/report_portal_tools_test_data.py,sha256=YZd
170
170
  codemie_test_harness/tests/test_data/research_tools_test_data.py,sha256=zwpzm-VSnrLZEfG97AE9Ms7z7j3xmqxiNd1EmZyWCSk,9102
171
171
  codemie_test_harness/tests/test_data/servicenow_tools_test_data.py,sha256=PKw9zEYSNcQM1KApCSjsBiA_3Py0bNQI7clqw8cmT-s,1983
172
172
  codemie_test_harness/tests/test_data/vcs_tools_test_data.py,sha256=ZJdday96uOKOy_kPRBPp0w9JZbf0il7Y_hPfwRmUkuM,4518
173
+ codemie_test_harness/tests/test_data/vendor_endpoint_test_data.py,sha256=Fti3ZbpS3m06Heyh5AAcoAKZuimX709iZQFPhzKvrC4,1075
174
+ codemie_test_harness/tests/test_data/vendor_test_data.py,sha256=FFS35ikzMzSHShnfmdIme-WjueSjj0qBwa0OU6ooKfc,1409
175
+ codemie_test_harness/tests/test_data/vendor_workflow_test_data.py,sha256=hZX_GpIz0RIjSuqvgCh_Sv5zwk4-iatP1J-SIKCL8cg,1588
173
176
  codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_assistant_id.yaml,sha256=_cioQNq3icemob9u0i-hXkTy2nflzyP0Ce8FWiPG14M,265
174
177
  codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_assistant_in_state.yaml,sha256=t_W95zD5bfdGf3F6p64-2qBHz7SkL_7mFT675uieWZg,209
175
178
  codemie_test_harness/tests/test_data/workflow/invalid_config/invalid_data_source.yaml,sha256=Vwx3HyrQkL8sWNtfwL6d0qiJhru6X3ojKBASAzJeY9w,252
@@ -295,9 +298,18 @@ codemie_test_harness/tests/utils/pytest_utils.py,sha256=k-mEjX2qpnh37sqKpJqYhZT6
295
298
  codemie_test_harness/tests/utils/search_utils.py,sha256=SrXiB2d9wiI5ka9bgg0CD73GOX_1mqi2Hz5FBm5DsEU,1435
296
299
  codemie_test_harness/tests/utils/similarity_check.py,sha256=2URqvD3Ft7efwLmhh2iYVsXrYboP9f-_B_ekZmJn0ac,1527
297
300
  codemie_test_harness/tests/utils/user_utils.py,sha256=zJNrmL3Fb7iGuaVRobUMwJ2Og6NqEPcM_9lw60m18T8,242
301
+ codemie_test_harness/tests/utils/vendor_utils.py,sha256=976qSTUOBIwg0Rvnw_Zg5YP8gFAr41jbVMk0EvXzVSU,11055
302
+ codemie_test_harness/tests/utils/vendor_workflow_utils.py,sha256=97s7pz9fYRkztK4FrFNfV33ASANiE_C0QOyt8iMgACM,13595
298
303
  codemie_test_harness/tests/utils/webhook_utils.py,sha256=YjyLwAqQjR12vYFOUmYhJCJIyZvKm4SvU-1oIjIYNqg,340
299
304
  codemie_test_harness/tests/utils/workflow_utils.py,sha256=bHxPQkblRPF1fZp_AXI36elMFm14nzqGYoU5Eqz4MWY,11553
300
305
  codemie_test_harness/tests/utils/yaml_utils.py,sha256=iIdEl-rUUh1LgzAmD_mjfftthhvlzXyCuA37yBoH0Gw,1617
306
+ codemie_test_harness/tests/vendor/__init__.py,sha256=7kcktgm5ZkmcVLRX2mTRhGzVzFpVR_rcgYUbhKe-3q0,71
307
+ codemie_test_harness/tests/vendor/assistants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
308
+ codemie_test_harness/tests/vendor/assistants/test_vendor_assistants.py,sha256=8ubDiB2YlCTuck8aD2MvgOhSWthfjEyZ8k8iqDqL5f8,1957
309
+ codemie_test_harness/tests/vendor/assistants/test_vendor_assistants_endpoints.py,sha256=XA9idTm6ZycoKCTGq31QpL_BeybgQa7dFC3RSqAPtec,13271
310
+ codemie_test_harness/tests/vendor/workflows/__init__.py,sha256=qcP6VHdlR6qbNhjrqRGHE5JReIj4CH0WGlMvpKgm1aM,38
311
+ codemie_test_harness/tests/vendor/workflows/test_vendor_workflow_endpoints.py,sha256=dkCmFPKj-sIVgbuaqQ2Ef7JBKUWGTftW9xZB3D1KCrU,11236
312
+ codemie_test_harness/tests/vendor/workflows/test_vendor_workflows.py,sha256=BVHWU9RN5Wn6XzXbRxo5Lod28GV7mPkbQSkErC-OUY4,1813
301
313
  codemie_test_harness/tests/webhook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
302
314
  codemie_test_harness/tests/webhook/test_webhook_service.py,sha256=POmxQG0tpcNW9-yKQ62CcnQpUEFYlTOs0_4H9MijIHY,8127
303
315
  codemie_test_harness/tests/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -405,7 +417,7 @@ codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/__init__.
405
417
  codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py,sha256=D835gaRbCnB4va5mi9TdA_u9StSpGXQ_fgzwW0S2pwo,1173
406
418
  codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
407
419
  codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/test_workflow_with_vcs_tools.py,sha256=Se9imIiBYuJU78m1pLu0g4ZmHygKZjr6JjIWkGXTy1Q,1364
408
- codemie_test_harness-0.1.221.dist-info/METADATA,sha256=OuLbVODiKmBvq1nHcaT-popN7ecY22G6Mcci97oQCOc,27184
409
- codemie_test_harness-0.1.221.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
410
- codemie_test_harness-0.1.221.dist-info/entry_points.txt,sha256=n98t-EOM5M1mnMl_j2X4siyeO9zr0WD9a5LF7JyElIM,73
411
- codemie_test_harness-0.1.221.dist-info/RECORD,,
420
+ codemie_test_harness-0.1.223.dist-info/METADATA,sha256=Gj4xWyOTQ8ZIJzhSOK2Ku_rtgHlZgM8bgp6zIZze1Oc,27184
421
+ codemie_test_harness-0.1.223.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
422
+ codemie_test_harness-0.1.223.dist-info/entry_points.txt,sha256=n98t-EOM5M1mnMl_j2X4siyeO9zr0WD9a5LF7JyElIM,73
423
+ codemie_test_harness-0.1.223.dist-info/RECORD,,