codemie-test-harness 0.1.162__py3-none-any.whl → 0.1.164__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/tests/__init__.py +2 -1
- codemie_test_harness/tests/assistant/datasource/test_confluence_datasource.py +2 -2
- codemie_test_harness/tests/assistant/datasource/test_jira_datasource.py +2 -2
- codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool.py +11 -11
- codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_kit.py +11 -11
- codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_with_datasource.py +14 -14
- codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_test_plan_tools.py +3 -3
- codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_wiki_tools.py +3 -3
- codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_work_item_tools.py +3 -3
- codemie_test_harness/tests/assistant/tools/datamanagement/test_assistant_with_data_management_tools.py +3 -6
- codemie_test_harness/tests/assistant/tools/mcp/test_cli_mcp_server.py +2 -2
- codemie_test_harness/tests/assistant/tools/notification/test_assistant_notification_tools.py +3 -3
- codemie_test_harness/tests/assistant/tools/project_management/test_assistant_pm_tools.py +5 -5
- codemie_test_harness/tests/conftest.py +32 -39
- codemie_test_harness/tests/e2e/test_e2e.py +5 -5
- codemie_test_harness/tests/integrations/project/test_default_integrations.py +7 -7
- codemie_test_harness/tests/integrations/user/test_default_integrations.py +7 -7
- codemie_test_harness/tests/llm/assistants/test_lite_llm.py +3 -3
- codemie_test_harness/tests/search/test_search_datasource.py +2 -2
- codemie_test_harness/tests/search/test_search_integration.py +3 -3
- codemie_test_harness/tests/service/test_datasource_service.py +12 -12
- codemie_test_harness/tests/test_data/cloud_tools_test_data.py +5 -5
- codemie_test_harness/tests/test_data/codebase_tools_test_data.py +3 -3
- codemie_test_harness/tests/test_data/direct_tools/cloud_tools_test_data.py +5 -5
- codemie_test_harness/tests/test_data/direct_tools/data_management_tools_test_data.py +6 -1
- codemie_test_harness/tests/test_data/direct_tools/file_management_tools_test_data.py +5 -1
- codemie_test_harness/tests/test_data/integrations_test_data.py +48 -48
- codemie_test_harness/tests/test_data/llm_test_data.py +1 -1
- codemie_test_harness/tests/test_data/notification_tools_test_data.py +2 -6
- codemie_test_harness/tests/test_data/report_portal_tools_test_data.py +4 -220
- codemie_test_harness/tests/test_data/vcs_tools_test_data.py +8 -5
- codemie_test_harness/tests/utils/aws_parameters_store.py +0 -560
- codemie_test_harness/tests/utils/base_utils.py +2 -2
- codemie_test_harness/tests/utils/client_factory.py +11 -9
- codemie_test_harness/tests/utils/credentials_manager.py +1358 -0
- codemie_test_harness/tests/utils/datasource_utils.py +7 -6
- codemie_test_harness/tests/utils/gitbud_utils.py +4 -4
- codemie_test_harness/tests/utils/notification_utils.py +6 -6
- codemie_test_harness/tests/workflow/assistant_tools/data_management/test_workflow_with_assistant_with_data_management_tools.py +3 -3
- codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool.py +11 -11
- codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +11 -11
- codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +14 -14
- codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool.py +11 -11
- codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool_kit.py +11 -11
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_codebase_tools.py +7 -7
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools_elastic.py +103 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools_sql.py +4 -4
- codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/test_workflow_with_codebase_tools.py +2 -2
- codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/test_workflow_with_data_management_tools.py +3 -3
- codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool.py +11 -11
- codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +11 -11
- codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +14 -14
- {codemie_test_harness-0.1.162.dist-info → codemie_test_harness-0.1.164.dist-info}/METADATA +2 -2
- {codemie_test_harness-0.1.162.dist-info → codemie_test_harness-0.1.164.dist-info}/RECORD +56 -54
- {codemie_test_harness-0.1.162.dist-info → codemie_test_harness-0.1.164.dist-info}/WHEEL +0 -0
- {codemie_test_harness-0.1.162.dist-info → codemie_test_harness-0.1.164.dist-info}/entry_points.txt +0 -0
|
@@ -1,18 +1,6 @@
|
|
|
1
|
-
import base64
|
|
2
|
-
import json
|
|
3
|
-
import os
|
|
4
|
-
import random
|
|
5
|
-
import re
|
|
6
|
-
from time import sleep
|
|
7
|
-
from typing import List
|
|
8
|
-
|
|
9
1
|
import boto3
|
|
10
2
|
from botocore.exceptions import ClientError
|
|
11
3
|
|
|
12
|
-
from codemie_sdk.models.integration import CredentialValues
|
|
13
|
-
from codemie_test_harness.tests.enums.integrations import DataBaseDialect
|
|
14
|
-
from codemie_test_harness.tests.utils.env_resolver import EnvironmentResolver
|
|
15
|
-
|
|
16
4
|
|
|
17
5
|
class AwsParameterStore:
|
|
18
6
|
"""
|
|
@@ -85,24 +73,6 @@ class AwsParameterStore:
|
|
|
85
73
|
cls._instance = cls(access_key, secret_key, session_token)
|
|
86
74
|
return cls._instance
|
|
87
75
|
|
|
88
|
-
@classmethod
|
|
89
|
-
def get_cloud_provider_credentials(cls, provider: str) -> dict:
|
|
90
|
-
"""
|
|
91
|
-
Get cloud provider credentials from Parameter Store.
|
|
92
|
-
|
|
93
|
-
Args:
|
|
94
|
-
provider (str): Provider name (aws, azure, gcp, etc.)
|
|
95
|
-
|
|
96
|
-
Returns:
|
|
97
|
-
dict: JSON object containing provider credentials
|
|
98
|
-
"""
|
|
99
|
-
sleep(random.random())
|
|
100
|
-
parameter_path = f"{cls.INTEGRATIONS_PARAMETER_PATH}{provider.lower()}"
|
|
101
|
-
if cls._instance:
|
|
102
|
-
return json.loads(cls._instance.get_parameter(parameter_path))
|
|
103
|
-
else:
|
|
104
|
-
return {}
|
|
105
|
-
|
|
106
76
|
def get_parameter(self, parameter_name: str) -> str:
|
|
107
77
|
"""
|
|
108
78
|
Get a parameter value from Parameter Store.
|
|
@@ -122,533 +92,3 @@ class AwsParameterStore:
|
|
|
122
92
|
except ClientError as e:
|
|
123
93
|
print(f"Error getting parameter: {parameter_name}! Error message: {str(e)}")
|
|
124
94
|
raise
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
class CredentialsUtil:
|
|
128
|
-
"""
|
|
129
|
-
Utility class for managing various cloud provider credentials.
|
|
130
|
-
"""
|
|
131
|
-
|
|
132
|
-
AUTO_GENERATED = "AutoGenerated"
|
|
133
|
-
|
|
134
|
-
@staticmethod
|
|
135
|
-
def aws_credentials() -> List[CredentialValues]:
|
|
136
|
-
aws_creds = AwsParameterStore.get_cloud_provider_credentials("aws")
|
|
137
|
-
return [
|
|
138
|
-
CredentialValues(key="url", value=CredentialsUtil.AUTO_GENERATED),
|
|
139
|
-
CredentialValues(
|
|
140
|
-
key="aws_region", value=aws_creds.get("aws", {}).get("region")
|
|
141
|
-
),
|
|
142
|
-
CredentialValues(
|
|
143
|
-
key="aws_access_key_id",
|
|
144
|
-
value=aws_creds.get("aws", {}).get("access_key_id"),
|
|
145
|
-
),
|
|
146
|
-
CredentialValues(
|
|
147
|
-
key="aws_secret_access_key",
|
|
148
|
-
value=aws_creds.get("aws", {}).get("secret_access_key", ""),
|
|
149
|
-
),
|
|
150
|
-
]
|
|
151
|
-
|
|
152
|
-
@staticmethod
|
|
153
|
-
def invalid_aws_credentials():
|
|
154
|
-
credentials = CredentialsUtil.aws_credentials()
|
|
155
|
-
for cred in credentials:
|
|
156
|
-
if cred.key == "aws_secret_access_key":
|
|
157
|
-
cred.value = re.sub(r"\d", "0", cred.value)
|
|
158
|
-
|
|
159
|
-
return credentials
|
|
160
|
-
|
|
161
|
-
@staticmethod
|
|
162
|
-
def gcp_credentials() -> List[CredentialValues]:
|
|
163
|
-
gcp_creds = AwsParameterStore.get_cloud_provider_credentials("gcp")
|
|
164
|
-
gcp_api_key = base64.b64decode(
|
|
165
|
-
gcp_creds.get("gcp", {}).get("sa_key_in_base64", "")
|
|
166
|
-
).decode()
|
|
167
|
-
|
|
168
|
-
return [
|
|
169
|
-
CredentialValues(key="url", value=CredentialsUtil.AUTO_GENERATED),
|
|
170
|
-
CredentialValues(key="gcp_api_key", value=gcp_api_key),
|
|
171
|
-
]
|
|
172
|
-
|
|
173
|
-
@staticmethod
|
|
174
|
-
def azure_credentials() -> List[CredentialValues]:
|
|
175
|
-
azure_creds = AwsParameterStore.get_cloud_provider_credentials("azure")
|
|
176
|
-
|
|
177
|
-
return [
|
|
178
|
-
CredentialValues(key="url", value=CredentialsUtil.AUTO_GENERATED),
|
|
179
|
-
CredentialValues(
|
|
180
|
-
key="azure_subscription_id",
|
|
181
|
-
value=azure_creds.get("azure", {}).get("subscription_id"),
|
|
182
|
-
),
|
|
183
|
-
CredentialValues(
|
|
184
|
-
key="azure_tenant_id",
|
|
185
|
-
value=azure_creds.get("azure", {}).get("tenant_id"),
|
|
186
|
-
),
|
|
187
|
-
CredentialValues(
|
|
188
|
-
key="azure_client_id",
|
|
189
|
-
value=azure_creds.get("azure", {}).get("client_id"),
|
|
190
|
-
),
|
|
191
|
-
CredentialValues(
|
|
192
|
-
key="azure_client_secret",
|
|
193
|
-
value=azure_creds.get("azure", {}).get("client_secret"),
|
|
194
|
-
),
|
|
195
|
-
]
|
|
196
|
-
|
|
197
|
-
@staticmethod
|
|
198
|
-
def sonar_credentials() -> List[CredentialValues]:
|
|
199
|
-
sonar_creds = AwsParameterStore.get_cloud_provider_credentials("sonar")
|
|
200
|
-
return [
|
|
201
|
-
CredentialValues(
|
|
202
|
-
key="url",
|
|
203
|
-
value=sonar_creds.get("sonar", {}).get("self-hosted", {}).get("url"),
|
|
204
|
-
),
|
|
205
|
-
CredentialValues(
|
|
206
|
-
key="token",
|
|
207
|
-
value=sonar_creds.get("sonar", {}).get("self-hosted", {}).get("token"),
|
|
208
|
-
),
|
|
209
|
-
CredentialValues(
|
|
210
|
-
key="sonar_project_name",
|
|
211
|
-
value=sonar_creds.get("sonar", {})
|
|
212
|
-
.get("self-hosted", {})
|
|
213
|
-
.get("projectKey"),
|
|
214
|
-
),
|
|
215
|
-
]
|
|
216
|
-
|
|
217
|
-
@staticmethod
|
|
218
|
-
def sonar_cloud_credentials() -> List[CredentialValues]:
|
|
219
|
-
sonar_creds = AwsParameterStore.get_cloud_provider_credentials("sonar")
|
|
220
|
-
return [
|
|
221
|
-
CredentialValues(
|
|
222
|
-
key="url",
|
|
223
|
-
value=sonar_creds.get("sonar", {}).get("cloud", {}).get("url"),
|
|
224
|
-
),
|
|
225
|
-
CredentialValues(
|
|
226
|
-
key="token",
|
|
227
|
-
value=sonar_creds.get("sonar", {}).get("cloud", {}).get("token"),
|
|
228
|
-
),
|
|
229
|
-
CredentialValues(
|
|
230
|
-
key="sonar_project_name",
|
|
231
|
-
value=sonar_creds.get("sonar", {}).get("cloud", {}).get("projectKey"),
|
|
232
|
-
),
|
|
233
|
-
]
|
|
234
|
-
|
|
235
|
-
@staticmethod
|
|
236
|
-
def gitlab_credentials():
|
|
237
|
-
return [
|
|
238
|
-
CredentialValues(
|
|
239
|
-
key="url", value=os.getenv("GITLAB_URL", "https://gitlab.com")
|
|
240
|
-
),
|
|
241
|
-
CredentialValues(key="name", value="test-token-name"),
|
|
242
|
-
CredentialValues(key="token", value=os.getenv("GITLAB_TOKEN", "token")),
|
|
243
|
-
]
|
|
244
|
-
|
|
245
|
-
@staticmethod
|
|
246
|
-
def github_credentials():
|
|
247
|
-
return [
|
|
248
|
-
CredentialValues(
|
|
249
|
-
key="url", value=os.getenv("GITHUB_URL", "https://github.com")
|
|
250
|
-
),
|
|
251
|
-
CredentialValues(key="name", value=""),
|
|
252
|
-
CredentialValues(key="token", value=os.getenv("GITHUB_TOKEN", "token")),
|
|
253
|
-
]
|
|
254
|
-
|
|
255
|
-
@staticmethod
|
|
256
|
-
def plugin_credentials(plugin_key=None) -> List[CredentialValues]:
|
|
257
|
-
creds = [CredentialValues(key="url", value=CredentialsUtil.AUTO_GENERATED)]
|
|
258
|
-
if plugin_key:
|
|
259
|
-
creds.append(CredentialValues(key="plugin_key", value=plugin_key))
|
|
260
|
-
else:
|
|
261
|
-
plugin_creds = AwsParameterStore.get_cloud_provider_credentials("plugin")
|
|
262
|
-
creds.append(
|
|
263
|
-
CredentialValues(key="plugin_key", value=plugin_creds["plugin"]["key"])
|
|
264
|
-
)
|
|
265
|
-
return creds
|
|
266
|
-
|
|
267
|
-
@staticmethod
|
|
268
|
-
def jira_credentials() -> List[CredentialValues]:
|
|
269
|
-
"""Create Jira credentials."""
|
|
270
|
-
|
|
271
|
-
return [
|
|
272
|
-
CredentialValues(key="url", value=os.getenv("JIRA_URL")),
|
|
273
|
-
CredentialValues(key="name", value=""),
|
|
274
|
-
CredentialValues(key="token", value=os.getenv("JIRA_TOKEN")),
|
|
275
|
-
]
|
|
276
|
-
|
|
277
|
-
@staticmethod
|
|
278
|
-
def jira_cloud_credentials() -> List[CredentialValues]:
|
|
279
|
-
jira_creds = AwsParameterStore.get_cloud_provider_credentials("jira")
|
|
280
|
-
|
|
281
|
-
return [
|
|
282
|
-
CredentialValues(
|
|
283
|
-
key="url", value=jira_creds.get("jiracloud", {}).get("url")
|
|
284
|
-
),
|
|
285
|
-
CredentialValues(
|
|
286
|
-
key="username", value=jira_creds.get("jiracloud", {}).get("email")
|
|
287
|
-
),
|
|
288
|
-
CredentialValues(
|
|
289
|
-
key="token", value=jira_creds.get("jiracloud", {}).get("token")
|
|
290
|
-
),
|
|
291
|
-
CredentialValues(key="is_cloud", value=True),
|
|
292
|
-
]
|
|
293
|
-
|
|
294
|
-
@staticmethod
|
|
295
|
-
def confluence_credentials() -> List[CredentialValues]:
|
|
296
|
-
"""Create Confluence credentials."""
|
|
297
|
-
|
|
298
|
-
return [
|
|
299
|
-
CredentialValues(key="url", value=os.getenv("CONFLUENCE_URL")),
|
|
300
|
-
CredentialValues(key="name", value=""),
|
|
301
|
-
CredentialValues(key="token", value=os.getenv("CONFLUENCE_TOKEN")),
|
|
302
|
-
]
|
|
303
|
-
|
|
304
|
-
@staticmethod
|
|
305
|
-
def confluence_cloud_credentials() -> List[CredentialValues]:
|
|
306
|
-
confluence_creds = AwsParameterStore.get_cloud_provider_credentials(
|
|
307
|
-
"confluence"
|
|
308
|
-
)
|
|
309
|
-
|
|
310
|
-
return [
|
|
311
|
-
CredentialValues(
|
|
312
|
-
key="url", value=confluence_creds.get("confluencecloud", {}).get("url")
|
|
313
|
-
),
|
|
314
|
-
CredentialValues(
|
|
315
|
-
key="username",
|
|
316
|
-
value=confluence_creds.get("confluencecloud", {}).get("email"),
|
|
317
|
-
),
|
|
318
|
-
CredentialValues(
|
|
319
|
-
key="token",
|
|
320
|
-
value=confluence_creds.get("confluencecloud", {}).get("token"),
|
|
321
|
-
),
|
|
322
|
-
CredentialValues(key="is_cloud", value=True),
|
|
323
|
-
]
|
|
324
|
-
|
|
325
|
-
@staticmethod
|
|
326
|
-
def invalid_confluence_credentials() -> List[CredentialValues]:
|
|
327
|
-
return [
|
|
328
|
-
CredentialValues(key="url", value=os.getenv("CONFLUENCE_URL")),
|
|
329
|
-
CredentialValues(key="name", value=""),
|
|
330
|
-
CredentialValues(key="token", value="wrong_token"),
|
|
331
|
-
]
|
|
332
|
-
|
|
333
|
-
@staticmethod
|
|
334
|
-
def gmail_credentials() -> List[CredentialValues]:
|
|
335
|
-
"""Create Gmail credentials."""
|
|
336
|
-
|
|
337
|
-
gmail_creds = AwsParameterStore.get_cloud_provider_credentials("email")
|
|
338
|
-
return [
|
|
339
|
-
CredentialValues(key="url", value=gmail_creds.get("email", {}).get("url")),
|
|
340
|
-
CredentialValues(
|
|
341
|
-
key="smtp_username",
|
|
342
|
-
value=gmail_creds.get("email", {}).get("smtp_username"),
|
|
343
|
-
),
|
|
344
|
-
CredentialValues(
|
|
345
|
-
key="smtp_password",
|
|
346
|
-
value=gmail_creds.get("email", {}).get("smtp_password"),
|
|
347
|
-
),
|
|
348
|
-
]
|
|
349
|
-
|
|
350
|
-
@staticmethod
|
|
351
|
-
def telegram_credentials() -> List[CredentialValues]:
|
|
352
|
-
"""Create Telegram credentials."""
|
|
353
|
-
|
|
354
|
-
telegram_creds = AwsParameterStore.get_cloud_provider_credentials("telegram")
|
|
355
|
-
return [
|
|
356
|
-
CredentialValues(
|
|
357
|
-
key="token", value=telegram_creds.get("telegram", {}).get("token")
|
|
358
|
-
),
|
|
359
|
-
]
|
|
360
|
-
|
|
361
|
-
@staticmethod
|
|
362
|
-
def azure_devops_credentials() -> List[CredentialValues]:
|
|
363
|
-
azure_devops_creds = AwsParameterStore.get_cloud_provider_credentials(
|
|
364
|
-
"AzureDevOps"
|
|
365
|
-
)
|
|
366
|
-
return [
|
|
367
|
-
CredentialValues(
|
|
368
|
-
key="url", value=azure_devops_creds.get("azure_devops", {}).get("url")
|
|
369
|
-
),
|
|
370
|
-
CredentialValues(
|
|
371
|
-
key="token",
|
|
372
|
-
value=azure_devops_creds.get("azure_devops", {}).get(
|
|
373
|
-
"personal_access_token"
|
|
374
|
-
),
|
|
375
|
-
),
|
|
376
|
-
CredentialValues(
|
|
377
|
-
key="project",
|
|
378
|
-
value=azure_devops_creds.get("azure_devops", {}).get("project_name"),
|
|
379
|
-
),
|
|
380
|
-
CredentialValues(
|
|
381
|
-
key="organization",
|
|
382
|
-
value=azure_devops_creds.get("azure_devops", {}).get(
|
|
383
|
-
"organization_name"
|
|
384
|
-
),
|
|
385
|
-
),
|
|
386
|
-
]
|
|
387
|
-
|
|
388
|
-
@staticmethod
|
|
389
|
-
def mcp_credentials() -> List[CredentialValues]:
|
|
390
|
-
return [CredentialValues(key="ALLOWED_COMMANDS", value="ls,echo,mkdir")]
|
|
391
|
-
|
|
392
|
-
@staticmethod
|
|
393
|
-
def file_system_credentials() -> List[CredentialValues]:
|
|
394
|
-
return [
|
|
395
|
-
CredentialValues(key="url", value=CredentialsUtil.AUTO_GENERATED),
|
|
396
|
-
CredentialValues(key="root_directory", value="/"),
|
|
397
|
-
]
|
|
398
|
-
|
|
399
|
-
@staticmethod
|
|
400
|
-
def open_api_credentials(token: str) -> List[CredentialValues]:
|
|
401
|
-
openapi_path = os.path.join(
|
|
402
|
-
os.path.dirname(__file__), "../test_data/openapi.json"
|
|
403
|
-
)
|
|
404
|
-
with open(openapi_path, "r") as openapi_json_file:
|
|
405
|
-
openapi_spec = json.load(openapi_json_file)
|
|
406
|
-
|
|
407
|
-
return [
|
|
408
|
-
CredentialValues(key="url", value=CredentialsUtil.AUTO_GENERATED),
|
|
409
|
-
CredentialValues(key="openapi_api_key", value=f"Bearer {token}"),
|
|
410
|
-
CredentialValues(
|
|
411
|
-
key="openapi_spec",
|
|
412
|
-
value=json.dumps(openapi_spec, indent=4).replace(
|
|
413
|
-
"CODEMIE_API_DOMAIN", os.getenv("CODEMIE_API_DOMAIN")
|
|
414
|
-
),
|
|
415
|
-
),
|
|
416
|
-
]
|
|
417
|
-
|
|
418
|
-
@staticmethod
|
|
419
|
-
def elastic_credentials() -> List[CredentialValues]:
|
|
420
|
-
elastic_creds = AwsParameterStore.get_cloud_provider_credentials("elastic")
|
|
421
|
-
elastic_creds = (
|
|
422
|
-
elastic_creds.get("elasticsearch", {})
|
|
423
|
-
if EnvironmentResolver.is_preview()
|
|
424
|
-
else elastic_creds.get("sandbox", {}).get("elasticsearch", {})
|
|
425
|
-
)
|
|
426
|
-
return [
|
|
427
|
-
CredentialValues(key="url", value=elastic_creds.get("url")),
|
|
428
|
-
CredentialValues(
|
|
429
|
-
key="elastic_api_key_id", value=elastic_creds.get("apiKeyId")
|
|
430
|
-
),
|
|
431
|
-
CredentialValues(key="elastic_api_key", value=elastic_creds.get("apiKey")),
|
|
432
|
-
]
|
|
433
|
-
|
|
434
|
-
@staticmethod
|
|
435
|
-
def sql_credentials(db_dialect: DataBaseDialect) -> List[CredentialValues]:
|
|
436
|
-
sql_creds = AwsParameterStore.get_cloud_provider_credentials("sql")
|
|
437
|
-
sql_creds = (
|
|
438
|
-
sql_creds
|
|
439
|
-
if EnvironmentResolver.is_preview()
|
|
440
|
-
else sql_creds.get("sandbox", {})
|
|
441
|
-
)
|
|
442
|
-
|
|
443
|
-
return [
|
|
444
|
-
CredentialValues(key="url", value=sql_creds.get(db_dialect, {}).get("url")),
|
|
445
|
-
CredentialValues(
|
|
446
|
-
key="dialect", value=sql_creds.get(db_dialect, {}).get("dialect")
|
|
447
|
-
),
|
|
448
|
-
CredentialValues(
|
|
449
|
-
key="port", value=sql_creds.get(db_dialect, {}).get("port")
|
|
450
|
-
),
|
|
451
|
-
CredentialValues(
|
|
452
|
-
key="database_name",
|
|
453
|
-
value=sql_creds.get(db_dialect, {}).get("database_name"),
|
|
454
|
-
),
|
|
455
|
-
CredentialValues(
|
|
456
|
-
key="username", value=sql_creds.get(db_dialect, {}).get("username")
|
|
457
|
-
),
|
|
458
|
-
CredentialValues(
|
|
459
|
-
key="password", value=sql_creds.get(db_dialect, {}).get("password")
|
|
460
|
-
),
|
|
461
|
-
]
|
|
462
|
-
|
|
463
|
-
@staticmethod
|
|
464
|
-
def invalid_gcp_credentials():
|
|
465
|
-
credentials = CredentialsUtil.gcp_credentials()
|
|
466
|
-
for cred in credentials:
|
|
467
|
-
if cred.key == "gcp_api_key":
|
|
468
|
-
cred.value = re.sub(r"\d", "0", cred.value)
|
|
469
|
-
|
|
470
|
-
return credentials
|
|
471
|
-
|
|
472
|
-
@staticmethod
|
|
473
|
-
def invalid_azure_credentials() -> List[CredentialValues]:
|
|
474
|
-
credentials = CredentialsUtil.azure_credentials()
|
|
475
|
-
for cred in credentials:
|
|
476
|
-
if cred.key == "azure_client_secret":
|
|
477
|
-
cred.value = "wrong_secret"
|
|
478
|
-
return credentials
|
|
479
|
-
|
|
480
|
-
@staticmethod
|
|
481
|
-
def invalid_sonar_credentials() -> List[CredentialValues]:
|
|
482
|
-
credentials = CredentialsUtil.sonar_credentials()
|
|
483
|
-
for cred in credentials:
|
|
484
|
-
if cred.key == "token":
|
|
485
|
-
cred.value = "wrong_token"
|
|
486
|
-
return credentials
|
|
487
|
-
|
|
488
|
-
@staticmethod
|
|
489
|
-
def invalid_sonar_cloud_credentials() -> List[CredentialValues]:
|
|
490
|
-
credentials = CredentialsUtil.sonar_cloud_credentials()
|
|
491
|
-
for cred in credentials:
|
|
492
|
-
if cred.key == "token":
|
|
493
|
-
cred.value = "wrong_token"
|
|
494
|
-
return credentials
|
|
495
|
-
|
|
496
|
-
@staticmethod
|
|
497
|
-
def invalid_gmail_credentials() -> List[CredentialValues]:
|
|
498
|
-
credentials = CredentialsUtil.gmail_credentials()
|
|
499
|
-
for cred in credentials:
|
|
500
|
-
if cred.key == "smtp_password":
|
|
501
|
-
cred.value = "wrong_token"
|
|
502
|
-
return credentials
|
|
503
|
-
|
|
504
|
-
@staticmethod
|
|
505
|
-
def invalid_jira_credentials() -> List[CredentialValues]:
|
|
506
|
-
credentials = CredentialsUtil.jira_credentials()
|
|
507
|
-
for cred in credentials:
|
|
508
|
-
if cred.key == "token":
|
|
509
|
-
cred.value = "wrong_token"
|
|
510
|
-
return credentials
|
|
511
|
-
|
|
512
|
-
@staticmethod
|
|
513
|
-
def invalid_ado_credentials() -> List[CredentialValues]:
|
|
514
|
-
credentials = CredentialsUtil.azure_devops_credentials()
|
|
515
|
-
for cred in credentials:
|
|
516
|
-
if cred.key == "personal_access_token":
|
|
517
|
-
cred.value = "wrong_token"
|
|
518
|
-
return credentials
|
|
519
|
-
|
|
520
|
-
@staticmethod
|
|
521
|
-
def invalid_git_credentials() -> List[CredentialValues]:
|
|
522
|
-
credentials = CredentialsUtil.gitlab_credentials()
|
|
523
|
-
for cred in credentials:
|
|
524
|
-
if cred.key == "token":
|
|
525
|
-
cred.value = "wrong_token"
|
|
526
|
-
return credentials
|
|
527
|
-
|
|
528
|
-
@staticmethod
|
|
529
|
-
def servicenow_credentials() -> List[CredentialValues]:
|
|
530
|
-
"""Get ServiceNow credentials from AWS Parameter Store."""
|
|
531
|
-
servicenow_creds = AwsParameterStore.get_cloud_provider_credentials(
|
|
532
|
-
"service_now"
|
|
533
|
-
)
|
|
534
|
-
return [
|
|
535
|
-
CredentialValues(key="url", value=servicenow_creds.get("url")),
|
|
536
|
-
CredentialValues(key="api_key", value=servicenow_creds.get("token")),
|
|
537
|
-
]
|
|
538
|
-
|
|
539
|
-
@staticmethod
|
|
540
|
-
def invalid_servicenow_credentials() -> List[CredentialValues]:
|
|
541
|
-
credentials = CredentialsUtil.servicenow_credentials()
|
|
542
|
-
for cred in credentials:
|
|
543
|
-
if cred.key == "api_key":
|
|
544
|
-
cred.value = "wrong_token"
|
|
545
|
-
return credentials
|
|
546
|
-
|
|
547
|
-
@staticmethod
|
|
548
|
-
def kubernetes_credentials() -> List[CredentialValues]:
|
|
549
|
-
kubernetes_creds = (
|
|
550
|
-
AwsParameterStore.get_cloud_provider_credentials("kubernetes")
|
|
551
|
-
.get("sandbox", {})
|
|
552
|
-
.get("kubernetes", {})
|
|
553
|
-
)
|
|
554
|
-
return [
|
|
555
|
-
CredentialValues(key="url", value=CredentialsUtil.AUTO_GENERATED),
|
|
556
|
-
CredentialValues(key="kubernetes_url", value=kubernetes_creds.get("url")),
|
|
557
|
-
CredentialValues(
|
|
558
|
-
key="kubernetes_token", value=kubernetes_creds.get("bearerToken")
|
|
559
|
-
),
|
|
560
|
-
]
|
|
561
|
-
|
|
562
|
-
@staticmethod
|
|
563
|
-
def invalid_kubernetes_credentials() -> List[CredentialValues]:
|
|
564
|
-
credentials = CredentialsUtil.kubernetes_credentials()
|
|
565
|
-
for cred in credentials:
|
|
566
|
-
if cred.key == "kubernetes_token":
|
|
567
|
-
cred.value = "wrong_token"
|
|
568
|
-
return credentials
|
|
569
|
-
|
|
570
|
-
@staticmethod
|
|
571
|
-
def keycloak_credentials() -> List[CredentialValues]:
|
|
572
|
-
keycloak_creds = AwsParameterStore.get_cloud_provider_credentials("keycloak")
|
|
573
|
-
return [
|
|
574
|
-
CredentialValues(
|
|
575
|
-
key="url", value=keycloak_creds.get("keycloak_admin", {}).get("url")
|
|
576
|
-
),
|
|
577
|
-
CredentialValues(
|
|
578
|
-
key="realm", value=keycloak_creds.get("keycloak_admin", {}).get("realm")
|
|
579
|
-
),
|
|
580
|
-
CredentialValues(
|
|
581
|
-
key="client_id",
|
|
582
|
-
value=keycloak_creds.get("keycloak_admin", {}).get("client_id"),
|
|
583
|
-
),
|
|
584
|
-
CredentialValues(
|
|
585
|
-
key="client_secret",
|
|
586
|
-
value=keycloak_creds.get("keycloak_admin", {}).get("client_secret"),
|
|
587
|
-
),
|
|
588
|
-
]
|
|
589
|
-
|
|
590
|
-
@staticmethod
|
|
591
|
-
def invalid_keycloak_credentials() -> List[CredentialValues]:
|
|
592
|
-
credentials = CredentialsUtil.keycloak_credentials()
|
|
593
|
-
for cred in credentials:
|
|
594
|
-
if cred.key == "client_secret":
|
|
595
|
-
cred.value = "wrong_secret"
|
|
596
|
-
return credentials
|
|
597
|
-
|
|
598
|
-
@staticmethod
|
|
599
|
-
def report_portal_credentials() -> List[CredentialValues]:
|
|
600
|
-
report_portal_creds = AwsParameterStore.get_cloud_provider_credentials(
|
|
601
|
-
"reportportal"
|
|
602
|
-
)
|
|
603
|
-
return [
|
|
604
|
-
CredentialValues(
|
|
605
|
-
key="url",
|
|
606
|
-
value=report_portal_creds.get("url"),
|
|
607
|
-
),
|
|
608
|
-
CredentialValues(
|
|
609
|
-
key="project",
|
|
610
|
-
value=report_portal_creds.get("project"),
|
|
611
|
-
),
|
|
612
|
-
CredentialValues(
|
|
613
|
-
key="api_key",
|
|
614
|
-
value=report_portal_creds.get("api_key"),
|
|
615
|
-
),
|
|
616
|
-
]
|
|
617
|
-
|
|
618
|
-
@staticmethod
|
|
619
|
-
def invalid_report_portal_credentials() -> List[CredentialValues]:
|
|
620
|
-
credentials = CredentialsUtil.report_portal_credentials()
|
|
621
|
-
for cred in credentials:
|
|
622
|
-
if cred.key == "api_key":
|
|
623
|
-
cred.value = "wrong_key"
|
|
624
|
-
return credentials
|
|
625
|
-
|
|
626
|
-
@staticmethod
|
|
627
|
-
def lite_llm_credentials() -> List[CredentialValues]:
|
|
628
|
-
lite_llm_creds = AwsParameterStore.get_cloud_provider_credentials("litellm")
|
|
629
|
-
return [
|
|
630
|
-
CredentialValues(
|
|
631
|
-
key="api_key",
|
|
632
|
-
value=lite_llm_creds.get("api_key"),
|
|
633
|
-
),
|
|
634
|
-
]
|
|
635
|
-
|
|
636
|
-
@staticmethod
|
|
637
|
-
def invalid_lite_llm_credentials() -> List[CredentialValues]:
|
|
638
|
-
credentials = CredentialsUtil.lite_llm_credentials()
|
|
639
|
-
for cred in credentials:
|
|
640
|
-
if cred.key == "api_key":
|
|
641
|
-
cred.value = "wrong_key"
|
|
642
|
-
return credentials
|
|
643
|
-
|
|
644
|
-
@staticmethod
|
|
645
|
-
def jira_cloud_jql() -> str:
|
|
646
|
-
jira_creds = AwsParameterStore.get_cloud_provider_credentials("jira")
|
|
647
|
-
return jira_creds.get("jiracloud", {}).get("jql")
|
|
648
|
-
|
|
649
|
-
@staticmethod
|
|
650
|
-
def confluence_cloud_jql() -> str:
|
|
651
|
-
confluence_creds = AwsParameterStore.get_cloud_provider_credentials(
|
|
652
|
-
"confluence"
|
|
653
|
-
)
|
|
654
|
-
return confluence_creds.get("confluencecloud", {}).get("cql")
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import json
|
|
2
|
-
import os
|
|
3
2
|
import random
|
|
4
3
|
import re
|
|
5
4
|
import string
|
|
@@ -19,6 +18,7 @@ from codemie_sdk.services.workflow_execution_state import (
|
|
|
19
18
|
WorkflowExecutionStateService,
|
|
20
19
|
)
|
|
21
20
|
from codemie_test_harness.tests import autotest_entity_prefix
|
|
21
|
+
from codemie_test_harness.tests.utils.credentials_manager import CredentialsManager
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
class BaseUtils:
|
|
@@ -50,7 +50,7 @@ def to_camel_case(input_string):
|
|
|
50
50
|
def wait_for_completion(
|
|
51
51
|
execution_state_service: WorkflowExecutionStateService,
|
|
52
52
|
state_id: str,
|
|
53
|
-
timeout: int = int(
|
|
53
|
+
timeout: int = int(CredentialsManager.get_parameter("DEFAULT_TIMEOUT", "120")),
|
|
54
54
|
pool_interval: int = 3,
|
|
55
55
|
) -> WorkflowExecutionState:
|
|
56
56
|
start_time = time.time()
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
"""Client factory utilities for tests."""
|
|
2
2
|
|
|
3
|
-
import os
|
|
4
3
|
from codemie_sdk import CodeMieClient
|
|
4
|
+
from codemie_test_harness.tests.utils.credentials_manager import CredentialsManager
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
def get_client():
|
|
8
8
|
"""Create a test client instance."""
|
|
9
|
+
# Use unified credentials manager for all client credentials
|
|
9
10
|
return CodeMieClient(
|
|
10
|
-
auth_server_url=
|
|
11
|
-
auth_client_id=
|
|
12
|
-
auth_client_secret=
|
|
13
|
-
auth_realm_name=
|
|
14
|
-
codemie_api_domain=
|
|
15
|
-
verify_ssl=
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
auth_server_url=CredentialsManager.get_parameter("AUTH_SERVER_URL", ""),
|
|
12
|
+
auth_client_id=CredentialsManager.get_parameter("AUTH_CLIENT_ID", ""),
|
|
13
|
+
auth_client_secret=CredentialsManager.get_parameter("AUTH_CLIENT_SECRET", ""),
|
|
14
|
+
auth_realm_name=CredentialsManager.get_parameter("AUTH_REALM_NAME", ""),
|
|
15
|
+
codemie_api_domain=CredentialsManager.get_parameter("CODEMIE_API_DOMAIN"),
|
|
16
|
+
verify_ssl=CredentialsManager.get_parameter("VERIFY_SSL", "false").lower()
|
|
17
|
+
== "true",
|
|
18
|
+
username=CredentialsManager.get_parameter("AUTH_USERNAME"),
|
|
19
|
+
password=CredentialsManager.get_parameter("AUTH_PASSWORD"),
|
|
18
20
|
)
|