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.

Files changed (56) hide show
  1. codemie_test_harness/tests/__init__.py +2 -1
  2. codemie_test_harness/tests/assistant/datasource/test_confluence_datasource.py +2 -2
  3. codemie_test_harness/tests/assistant/datasource/test_jira_datasource.py +2 -2
  4. codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool.py +11 -11
  5. codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_kit.py +11 -11
  6. codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_with_datasource.py +14 -14
  7. codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_test_plan_tools.py +3 -3
  8. codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_wiki_tools.py +3 -3
  9. codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_work_item_tools.py +3 -3
  10. codemie_test_harness/tests/assistant/tools/datamanagement/test_assistant_with_data_management_tools.py +3 -6
  11. codemie_test_harness/tests/assistant/tools/mcp/test_cli_mcp_server.py +2 -2
  12. codemie_test_harness/tests/assistant/tools/notification/test_assistant_notification_tools.py +3 -3
  13. codemie_test_harness/tests/assistant/tools/project_management/test_assistant_pm_tools.py +5 -5
  14. codemie_test_harness/tests/conftest.py +32 -39
  15. codemie_test_harness/tests/e2e/test_e2e.py +5 -5
  16. codemie_test_harness/tests/integrations/project/test_default_integrations.py +7 -7
  17. codemie_test_harness/tests/integrations/user/test_default_integrations.py +7 -7
  18. codemie_test_harness/tests/llm/assistants/test_lite_llm.py +3 -3
  19. codemie_test_harness/tests/search/test_search_datasource.py +2 -2
  20. codemie_test_harness/tests/search/test_search_integration.py +3 -3
  21. codemie_test_harness/tests/service/test_datasource_service.py +12 -12
  22. codemie_test_harness/tests/test_data/cloud_tools_test_data.py +5 -5
  23. codemie_test_harness/tests/test_data/codebase_tools_test_data.py +3 -3
  24. codemie_test_harness/tests/test_data/direct_tools/cloud_tools_test_data.py +5 -5
  25. codemie_test_harness/tests/test_data/direct_tools/data_management_tools_test_data.py +6 -1
  26. codemie_test_harness/tests/test_data/direct_tools/file_management_tools_test_data.py +5 -1
  27. codemie_test_harness/tests/test_data/integrations_test_data.py +48 -48
  28. codemie_test_harness/tests/test_data/llm_test_data.py +1 -1
  29. codemie_test_harness/tests/test_data/notification_tools_test_data.py +2 -6
  30. codemie_test_harness/tests/test_data/report_portal_tools_test_data.py +4 -220
  31. codemie_test_harness/tests/test_data/vcs_tools_test_data.py +8 -5
  32. codemie_test_harness/tests/utils/aws_parameters_store.py +0 -560
  33. codemie_test_harness/tests/utils/base_utils.py +2 -2
  34. codemie_test_harness/tests/utils/client_factory.py +11 -9
  35. codemie_test_harness/tests/utils/credentials_manager.py +1358 -0
  36. codemie_test_harness/tests/utils/datasource_utils.py +7 -6
  37. codemie_test_harness/tests/utils/gitbud_utils.py +4 -4
  38. codemie_test_harness/tests/utils/notification_utils.py +6 -6
  39. codemie_test_harness/tests/workflow/assistant_tools/data_management/test_workflow_with_assistant_with_data_management_tools.py +3 -3
  40. codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool.py +11 -11
  41. codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +11 -11
  42. codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +14 -14
  43. codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool.py +11 -11
  44. codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool_kit.py +11 -11
  45. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_codebase_tools.py +7 -7
  46. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools_elastic.py +103 -0
  47. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools_sql.py +4 -4
  48. codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/test_workflow_with_codebase_tools.py +2 -2
  49. codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/test_workflow_with_data_management_tools.py +3 -3
  50. codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool.py +11 -11
  51. codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +11 -11
  52. codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +14 -14
  53. {codemie_test_harness-0.1.162.dist-info → codemie_test_harness-0.1.164.dist-info}/METADATA +2 -2
  54. {codemie_test_harness-0.1.162.dist-info → codemie_test_harness-0.1.164.dist-info}/RECORD +56 -54
  55. {codemie_test_harness-0.1.162.dist-info → codemie_test_harness-0.1.164.dist-info}/WHEEL +0 -0
  56. {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(os.getenv("DEFAULT_TIMEOUT", "120")),
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=os.getenv("AUTH_SERVER_URL", ""),
11
- auth_client_id=os.getenv("AUTH_CLIENT_ID", ""),
12
- auth_client_secret=os.getenv("AUTH_CLIENT_SECRET", ""),
13
- auth_realm_name=os.getenv("AUTH_REALM_NAME", ""),
14
- codemie_api_domain=os.getenv("CODEMIE_API_DOMAIN"),
15
- verify_ssl=os.getenv("VERIFY_SSL", "false").lower() == "true",
16
- username=os.getenv("AUTH_USERNAME"),
17
- password=os.getenv("AUTH_PASSWORD"),
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
  )