codemie-test-harness 0.1.155__py3-none-any.whl → 0.1.157__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/.env +1 -1
- codemie_test_harness/tests/assistant/datasource/test_code_datasource.py +6 -0
- codemie_test_harness/tests/assistant/datasource/test_confluence_datasource.py +14 -2
- codemie_test_harness/tests/assistant/datasource/test_file_indexing.py +10 -0
- codemie_test_harness/tests/assistant/datasource/test_google_datasource.py +6 -0
- codemie_test_harness/tests/assistant/datasource/test_jira_datasource.py +18 -2
- codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool.py +10 -0
- codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_kit.py +10 -0
- codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_with_datasource.py +10 -0
- codemie_test_harness/tests/assistant/test_assistants.py +24 -2
- codemie_test_harness/tests/assistant/tools/access_management/test_keycloak_tool.py +2 -0
- codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_test_plan_tools.py +4 -0
- codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_wiki_tools.py +4 -0
- codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_work_item_tools.py +4 -0
- codemie_test_harness/tests/assistant/tools/cloud/test_cloud_tools.py +2 -0
- codemie_test_harness/tests/assistant/tools/codebase/test_codebase_tools.py +3 -0
- codemie_test_harness/tests/assistant/tools/datamanagement/test_assistant_with_data_management_tools.py +8 -4
- codemie_test_harness/tests/assistant/tools/filemanagement/test_assistant_with_file_management_tools.py +9 -1
- codemie_test_harness/tests/assistant/tools/git/test_assistant_with_git_tools.py +14 -0
- codemie_test_harness/tests/assistant/tools/mcp/test_cli_mcp_server.py +8 -6
- codemie_test_harness/tests/assistant/tools/mcp/test_mcp_servers.py +8 -6
- codemie_test_harness/tests/assistant/tools/notification/test_assistant_notification_tools.py +6 -0
- codemie_test_harness/tests/assistant/tools/openapi/test_assistant_with_open_api_tools.py +6 -4
- codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_development_plugin.py +4 -1
- codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_plugin_and_mcp_servers.py +6 -2
- codemie_test_harness/tests/assistant/tools/project_management/test_assistant_pm_tools.py +17 -0
- codemie_test_harness/tests/assistant/tools/research/test_assistant_research_tools.py +4 -0
- codemie_test_harness/tests/assistant/tools/servicenow/test_servicenow_tools.py +2 -0
- codemie_test_harness/tests/assistant/tools/vcs/test_assistant_with_vcs_tools.py +3 -1
- codemie_test_harness/tests/conversations/test_conversations_endpoints.py +10 -0
- codemie_test_harness/tests/e2e/test_e2e.py +24 -8
- codemie_test_harness/tests/integrations/project/test_default_integrations.py +41 -4
- codemie_test_harness/tests/integrations/project/test_project_integrations.py +23 -9
- codemie_test_harness/tests/integrations/user/test_default_integrations.py +40 -4
- codemie_test_harness/tests/integrations/user/test_user_integrations.py +26 -12
- codemie_test_harness/tests/llm/assistants/test_llm.py +8 -0
- codemie_test_harness/tests/providers/test_providers_endpoints.py +11 -0
- codemie_test_harness/tests/search/test_search_assistant.py +2 -0
- codemie_test_harness/tests/search/test_search_datasource.py +10 -0
- codemie_test_harness/tests/search/test_search_integration.py +6 -0
- codemie_test_harness/tests/search/test_search_workflow.py +2 -0
- codemie_test_harness/tests/test_data/cloud_tools_test_data.py +18 -10
- codemie_test_harness/tests/test_data/codebase_tools_test_data.py +6 -2
- codemie_test_harness/tests/test_data/direct_tools/cloud_tools_test_data.py +18 -10
- codemie_test_harness/tests/test_data/direct_tools/codebase_tools_test_data.py +6 -2
- codemie_test_harness/tests/test_data/direct_tools/notification_tools_test_data.py +9 -5
- codemie_test_harness/tests/test_data/direct_tools/project_management_tools_test_data.py +6 -2
- codemie_test_harness/tests/test_data/direct_tools/vcs_tools_test_data.py +6 -2
- codemie_test_harness/tests/test_data/integrations_test_data.py +185 -65
- codemie_test_harness/tests/test_data/project_management_test_data.py +10 -4
- codemie_test_harness/tests/test_data/vcs_tools_test_data.py +8 -2
- codemie_test_harness/tests/ui/test_create_workflow.py +13 -0
- codemie_test_harness/tests/ui/test_edit_workflow.py +16 -0
- codemie_test_harness/tests/ui/test_workflow_details.py +17 -0
- codemie_test_harness/tests/ui/test_workflow_executions_page.py +36 -0
- codemie_test_harness/tests/ui/test_workflow_templates.py +8 -0
- codemie_test_harness/tests/ui/test_workflows.py +8 -0
- codemie_test_harness/tests/workflow/assistant_tools/access_management/test_workflow_with_assistant_with_keycloak_tool.py +3 -0
- codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_test_plan_tools.py +6 -0
- codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_wiki_tools.py +6 -0
- codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_work_item_tools.py +6 -0
- codemie_test_harness/tests/workflow/assistant_tools/cloud/test_workflow_with_assistant_cloud_tools.py +3 -0
- codemie_test_harness/tests/workflow/assistant_tools/codebase/test_worfklow_with_assistant_codebase_tools.py +5 -0
- codemie_test_harness/tests/workflow/assistant_tools/data_management/test_workflow_with_assistant_with_data_management_tools.py +6 -0
- codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool.py +20 -0
- codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +20 -0
- codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +25 -0
- codemie_test_harness/tests/workflow/assistant_tools/file_management/test_workflow_with_assistant_with_file_management_tools.py +15 -0
- codemie_test_harness/tests/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py +21 -0
- codemie_test_harness/tests/workflow/assistant_tools/mcp/test_workflow_with_assistant_with_mcp_server.py +9 -3
- codemie_test_harness/tests/workflow/assistant_tools/notification/test_workflow_with_assistant_notification_tools.py +8 -0
- codemie_test_harness/tests/workflow/assistant_tools/open_api/test_workflow_with_assistant_with_open_api_tools.py +3 -0
- codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_development_plugin.py +6 -2
- codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_plugin_and_mcp_servers.py +8 -2
- codemie_test_harness/tests/workflow/assistant_tools/project_management/test_workflow_with_assistant_pm_tools.py +3 -0
- codemie_test_harness/tests/workflow/assistant_tools/research/test_workflow_with_assistant_research_tools.py +6 -0
- codemie_test_harness/tests/workflow/assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +3 -0
- codemie_test_harness/tests/workflow/assistant_tools/vcs/workflow_with_assistant_vcs_tools.py +3 -0
- codemie_test_harness/tests/workflow/config_validation/test_config_validation.py +4 -3
- codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool.py +17 -2
- codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool_kit.py +15 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_access_management_tool.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_test_plan_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_wiki_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_work_item_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_cloud_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_codebase_tools.py +6 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_file_management_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_notification_tools.py +3 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_open_api_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_plugin_tools.py +12 -4
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_project_management_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_research_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_servicenow_tools.py +9 -0
- codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_vcs_tools.py +3 -0
- codemie_test_harness/tests/workflow/test_workflows.py +1 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/access_management/test_workflow_with_keycloak_tool.py +3 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_test_plan_tools.py +6 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_wiki_tools.py +6 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_work_item_tools.py +6 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud/test_workflow_with_cloud_tools.py +3 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/test_workflow_with_codebase_tools.py +5 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/test_workflow_with_data_management_tools.py +6 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool.py +20 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +20 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +25 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/test_workflow_with_file_management_tools.py +15 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py +21 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp/test_workflow_with_mcp_server.py +12 -6
- codemie_test_harness/tests/workflow/virtual_assistant_tools/notification/test_workflow_with_notification_tools.py +8 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/open_api/test_workflow_with_open_api_tools.py +6 -3
- codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_development_plugin.py +6 -2
- codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_plugin_and_mcp_servers.py +8 -2
- codemie_test_harness/tests/workflow/virtual_assistant_tools/project_management/test_workflow_with_project_management_tools.py +3 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/research/test_workflow_with_research_tools.py +6 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +3 -0
- codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/test_workflow_with_vcs_tools.py +3 -0
- {codemie_test_harness-0.1.155.dist-info → codemie_test_harness-0.1.157.dist-info}/METADATA +2 -2
- {codemie_test_harness-0.1.155.dist-info → codemie_test_harness-0.1.157.dist-info}/RECORD +122 -122
- {codemie_test_harness-0.1.155.dist-info → codemie_test_harness-0.1.157.dist-info}/WHEEL +0 -0
- {codemie_test_harness-0.1.155.dist-info → codemie_test_harness-0.1.157.dist-info}/entry_points.txt +0 -0
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
1
3
|
from codemie_test_harness.tests.enums.tools import VcsTool, Toolkit
|
|
2
4
|
|
|
3
5
|
|
|
4
6
|
vcs_tools_test_data = [
|
|
5
|
-
(
|
|
7
|
+
pytest.param(
|
|
6
8
|
Toolkit.VCS,
|
|
7
9
|
VcsTool.GITHUB,
|
|
8
10
|
{
|
|
@@ -88,8 +90,9 @@ vcs_tools_test_data = [
|
|
|
88
90
|
"state_reason" : null
|
|
89
91
|
}
|
|
90
92
|
""",
|
|
93
|
+
marks=pytest.mark.github,
|
|
91
94
|
),
|
|
92
|
-
(
|
|
95
|
+
pytest.param(
|
|
93
96
|
Toolkit.VCS,
|
|
94
97
|
VcsTool.GITLAB,
|
|
95
98
|
{
|
|
@@ -131,5 +134,6 @@ vcs_tools_test_data = [
|
|
|
131
134
|
true,"user":{"can_merge":true}}
|
|
132
135
|
|
|
133
136
|
""",
|
|
137
|
+
marks=pytest.mark.gitlab,
|
|
134
138
|
),
|
|
135
139
|
]
|
|
@@ -7,177 +7,280 @@ from codemie_test_harness.tests.enums.integrations import DataBaseDialect
|
|
|
7
7
|
from codemie_test_harness.tests.utils.aws_parameters_store import CredentialsUtil
|
|
8
8
|
|
|
9
9
|
valid_integrations = [
|
|
10
|
-
(
|
|
10
|
+
pytest.param(
|
|
11
11
|
CredentialTypes.AWS,
|
|
12
12
|
CredentialsUtil.aws_credentials(),
|
|
13
|
+
marks=[
|
|
14
|
+
pytest.mark.aws,
|
|
15
|
+
pytest.mark.cloud,
|
|
16
|
+
],
|
|
13
17
|
),
|
|
14
|
-
(
|
|
18
|
+
pytest.param(
|
|
15
19
|
CredentialTypes.AZURE,
|
|
16
20
|
CredentialsUtil.azure_credentials(),
|
|
21
|
+
marks=[
|
|
22
|
+
pytest.mark.azure,
|
|
23
|
+
pytest.mark.cloud,
|
|
24
|
+
],
|
|
17
25
|
),
|
|
18
26
|
pytest.param(
|
|
19
27
|
CredentialTypes.GCP,
|
|
20
28
|
CredentialsUtil.gcp_credentials(),
|
|
21
|
-
marks=
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
marks=[
|
|
30
|
+
pytest.mark.gcp,
|
|
31
|
+
pytest.mark.cloud,
|
|
32
|
+
pytest.mark.skipif(
|
|
33
|
+
os.getenv("ENV") == "azure",
|
|
34
|
+
reason="Still have an issue with encoding long strings",
|
|
35
|
+
),
|
|
36
|
+
],
|
|
25
37
|
),
|
|
26
|
-
(
|
|
38
|
+
pytest.param(
|
|
27
39
|
CredentialTypes.SONAR,
|
|
28
40
|
CredentialsUtil.sonar_credentials(),
|
|
41
|
+
marks=pytest.mark.sonar,
|
|
29
42
|
),
|
|
30
|
-
(
|
|
43
|
+
pytest.param(
|
|
31
44
|
CredentialTypes.SONAR,
|
|
32
45
|
CredentialsUtil.sonar_cloud_credentials(),
|
|
46
|
+
marks=pytest.mark.sonar,
|
|
33
47
|
),
|
|
34
|
-
(
|
|
48
|
+
pytest.param(
|
|
35
49
|
CredentialTypes.GIT,
|
|
36
50
|
CredentialsUtil.gitlab_credentials(),
|
|
51
|
+
marks=pytest.mark.gitlab,
|
|
37
52
|
),
|
|
38
|
-
(
|
|
53
|
+
pytest.param(
|
|
39
54
|
CredentialTypes.GIT,
|
|
40
55
|
CredentialsUtil.github_credentials(),
|
|
56
|
+
marks=pytest.mark.github,
|
|
41
57
|
),
|
|
42
|
-
(
|
|
58
|
+
pytest.param(
|
|
43
59
|
CredentialTypes.CONFLUENCE,
|
|
44
60
|
CredentialsUtil.confluence_credentials(),
|
|
61
|
+
marks=[
|
|
62
|
+
pytest.mark.confluence,
|
|
63
|
+
pytest.mark.project_management,
|
|
64
|
+
],
|
|
45
65
|
),
|
|
46
|
-
(
|
|
66
|
+
pytest.param(
|
|
47
67
|
CredentialTypes.CONFLUENCE,
|
|
48
68
|
CredentialsUtil.confluence_cloud_credentials(),
|
|
69
|
+
marks=[
|
|
70
|
+
pytest.mark.confluence,
|
|
71
|
+
pytest.mark.confluence_cloud,
|
|
72
|
+
pytest.mark.project_management,
|
|
73
|
+
],
|
|
49
74
|
),
|
|
50
|
-
(
|
|
75
|
+
pytest.param(
|
|
51
76
|
CredentialTypes.JIRA,
|
|
52
77
|
CredentialsUtil.jira_credentials(),
|
|
78
|
+
marks=[
|
|
79
|
+
pytest.mark.jira,
|
|
80
|
+
pytest.mark.project_management,
|
|
81
|
+
],
|
|
53
82
|
),
|
|
54
|
-
(
|
|
83
|
+
pytest.param(
|
|
55
84
|
CredentialTypes.JIRA,
|
|
56
85
|
CredentialsUtil.jira_cloud_credentials(),
|
|
86
|
+
marks=[
|
|
87
|
+
pytest.mark.jira,
|
|
88
|
+
pytest.mark.jira_cloud,
|
|
89
|
+
pytest.mark.project_management,
|
|
90
|
+
],
|
|
57
91
|
),
|
|
58
|
-
(
|
|
92
|
+
pytest.param(
|
|
59
93
|
CredentialTypes.SQL,
|
|
60
94
|
CredentialsUtil.sql_credentials(DataBaseDialect.POSTGRES),
|
|
95
|
+
marks=pytest.mark.sql,
|
|
61
96
|
),
|
|
62
|
-
(
|
|
97
|
+
pytest.param(
|
|
63
98
|
CredentialTypes.SQL,
|
|
64
99
|
CredentialsUtil.sql_credentials(DataBaseDialect.MY_SQL),
|
|
100
|
+
marks=pytest.mark.sql,
|
|
65
101
|
),
|
|
66
|
-
(
|
|
102
|
+
pytest.param(
|
|
67
103
|
CredentialTypes.ELASTIC,
|
|
68
104
|
CredentialsUtil.elastic_credentials(),
|
|
105
|
+
marks=pytest.mark.elastic,
|
|
69
106
|
),
|
|
70
|
-
(
|
|
107
|
+
pytest.param(
|
|
71
108
|
CredentialTypes.MCP,
|
|
72
109
|
CredentialsUtil.mcp_credentials(),
|
|
110
|
+
marks=pytest.mark.mcp,
|
|
73
111
|
),
|
|
74
|
-
(
|
|
112
|
+
pytest.param(
|
|
75
113
|
CredentialTypes.AZURE_DEVOPS,
|
|
76
114
|
CredentialsUtil.azure_devops_credentials(),
|
|
115
|
+
marks=pytest.mark.azure,
|
|
77
116
|
),
|
|
78
|
-
(
|
|
117
|
+
pytest.param(
|
|
79
118
|
CredentialTypes.FILESYSTEM,
|
|
80
119
|
CredentialsUtil.file_system_credentials(),
|
|
120
|
+
marks=pytest.mark.file_system,
|
|
81
121
|
),
|
|
82
|
-
(
|
|
122
|
+
pytest.param(
|
|
83
123
|
CredentialTypes.EMAIL,
|
|
84
124
|
CredentialsUtil.gmail_credentials(),
|
|
125
|
+
marks=[
|
|
126
|
+
pytest.mark.notification,
|
|
127
|
+
pytest.mark.email,
|
|
128
|
+
],
|
|
85
129
|
),
|
|
86
|
-
(
|
|
130
|
+
pytest.param(
|
|
87
131
|
CredentialTypes.TELEGRAM,
|
|
88
132
|
CredentialsUtil.telegram_credentials(),
|
|
133
|
+
marks=[
|
|
134
|
+
pytest.mark.notification,
|
|
135
|
+
pytest.mark.telegram,
|
|
136
|
+
],
|
|
89
137
|
),
|
|
90
|
-
(
|
|
138
|
+
pytest.param(
|
|
91
139
|
CredentialTypes.SERVICE_NOW,
|
|
92
140
|
CredentialsUtil.servicenow_credentials(),
|
|
141
|
+
marks=pytest.mark.servicenow,
|
|
93
142
|
),
|
|
94
|
-
(
|
|
143
|
+
pytest.param(
|
|
95
144
|
CredentialTypes.KEYCLOAK,
|
|
96
145
|
CredentialsUtil.keycloak_credentials(),
|
|
146
|
+
marks=pytest.mark.keycloak,
|
|
97
147
|
),
|
|
98
148
|
pytest.param(
|
|
99
149
|
CredentialTypes.KUBERNETES,
|
|
100
150
|
CredentialsUtil.kubernetes_credentials(),
|
|
101
|
-
marks=
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
151
|
+
marks=[
|
|
152
|
+
pytest.mark.kubernetes,
|
|
153
|
+
pytest.mark.cloud,
|
|
154
|
+
pytest.mark.skipif(
|
|
155
|
+
os.getenv("ENV") == "azure",
|
|
156
|
+
reason="Still have an issue with encoding long strings",
|
|
157
|
+
),
|
|
158
|
+
],
|
|
105
159
|
),
|
|
106
160
|
]
|
|
107
161
|
|
|
108
162
|
testable_integrations = [
|
|
109
|
-
(
|
|
163
|
+
pytest.param(
|
|
110
164
|
CredentialTypes.AWS,
|
|
111
165
|
CredentialsUtil.aws_credentials(),
|
|
166
|
+
marks=[
|
|
167
|
+
pytest.mark.aws,
|
|
168
|
+
pytest.mark.cloud,
|
|
169
|
+
],
|
|
112
170
|
),
|
|
113
|
-
(
|
|
171
|
+
pytest.param(
|
|
114
172
|
CredentialTypes.AZURE,
|
|
115
173
|
CredentialsUtil.azure_credentials(),
|
|
174
|
+
marks=[
|
|
175
|
+
pytest.mark.azure,
|
|
176
|
+
pytest.mark.cloud,
|
|
177
|
+
],
|
|
116
178
|
),
|
|
117
179
|
pytest.param(
|
|
118
180
|
CredentialTypes.GCP,
|
|
119
181
|
CredentialsUtil.gcp_credentials(),
|
|
120
|
-
marks=
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
182
|
+
marks=[
|
|
183
|
+
pytest.mark.gcp,
|
|
184
|
+
pytest.mark.cloud,
|
|
185
|
+
pytest.mark.skipif(
|
|
186
|
+
os.getenv("ENV") == "azure",
|
|
187
|
+
reason="Still have an issue with encoding long strings",
|
|
188
|
+
),
|
|
189
|
+
],
|
|
124
190
|
),
|
|
125
|
-
(
|
|
191
|
+
pytest.param(
|
|
126
192
|
CredentialTypes.SONAR,
|
|
127
193
|
CredentialsUtil.sonar_credentials(),
|
|
194
|
+
marks=pytest.mark.sonar,
|
|
128
195
|
),
|
|
129
|
-
(
|
|
196
|
+
pytest.param(
|
|
130
197
|
CredentialTypes.SONAR,
|
|
131
198
|
CredentialsUtil.sonar_cloud_credentials(),
|
|
199
|
+
marks=pytest.mark.sonar,
|
|
132
200
|
),
|
|
133
|
-
(
|
|
201
|
+
pytest.param(
|
|
134
202
|
CredentialTypes.CONFLUENCE,
|
|
135
203
|
CredentialsUtil.confluence_credentials(),
|
|
204
|
+
marks=[
|
|
205
|
+
pytest.mark.confluence,
|
|
206
|
+
pytest.mark.project_management,
|
|
207
|
+
],
|
|
136
208
|
),
|
|
137
|
-
(
|
|
209
|
+
pytest.param(
|
|
138
210
|
CredentialTypes.CONFLUENCE,
|
|
139
211
|
CredentialsUtil.confluence_cloud_credentials(),
|
|
212
|
+
marks=[
|
|
213
|
+
pytest.mark.confluence,
|
|
214
|
+
pytest.mark.confluence_cloud,
|
|
215
|
+
pytest.mark.project_management,
|
|
216
|
+
],
|
|
140
217
|
),
|
|
141
|
-
(
|
|
218
|
+
pytest.param(
|
|
142
219
|
CredentialTypes.JIRA,
|
|
143
220
|
CredentialsUtil.jira_credentials(),
|
|
221
|
+
marks=[
|
|
222
|
+
pytest.mark.jira,
|
|
223
|
+
pytest.mark.project_management,
|
|
224
|
+
],
|
|
144
225
|
),
|
|
145
|
-
(
|
|
226
|
+
pytest.param(
|
|
146
227
|
CredentialTypes.JIRA,
|
|
147
228
|
CredentialsUtil.jira_cloud_credentials(),
|
|
229
|
+
marks=[
|
|
230
|
+
pytest.mark.jira,
|
|
231
|
+
pytest.mark.jira_cloud,
|
|
232
|
+
pytest.mark.project_management,
|
|
233
|
+
],
|
|
148
234
|
),
|
|
149
235
|
pytest.param(
|
|
150
236
|
CredentialTypes.EMAIL,
|
|
151
237
|
CredentialsUtil.gmail_credentials(),
|
|
152
|
-
marks=
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
238
|
+
marks=[
|
|
239
|
+
pytest.mark.email,
|
|
240
|
+
pytest.mark.notification,
|
|
241
|
+
pytest.mark.skipif(
|
|
242
|
+
os.getenv("ENV") == "local",
|
|
243
|
+
reason="Skipping this test on local environment",
|
|
244
|
+
),
|
|
245
|
+
],
|
|
156
246
|
),
|
|
157
|
-
(
|
|
247
|
+
pytest.param(
|
|
158
248
|
CredentialTypes.SERVICE_NOW,
|
|
159
249
|
CredentialsUtil.servicenow_credentials(),
|
|
250
|
+
marks=pytest.mark.servicenow,
|
|
160
251
|
),
|
|
161
252
|
pytest.param(
|
|
162
253
|
CredentialTypes.KUBERNETES,
|
|
163
254
|
CredentialsUtil.kubernetes_credentials(),
|
|
164
|
-
marks=
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
255
|
+
marks=[
|
|
256
|
+
pytest.mark.kubernetes,
|
|
257
|
+
pytest.mark.cloud,
|
|
258
|
+
pytest.mark.skipif(
|
|
259
|
+
os.getenv("ENV") == "azure",
|
|
260
|
+
reason="Still have an issue with encoding long strings",
|
|
261
|
+
),
|
|
262
|
+
],
|
|
168
263
|
),
|
|
169
264
|
]
|
|
170
265
|
|
|
171
266
|
invalid_integrations = [
|
|
172
|
-
(
|
|
267
|
+
pytest.param(
|
|
173
268
|
CredentialTypes.AWS,
|
|
174
269
|
CredentialsUtil.invalid_aws_credentials(),
|
|
175
270
|
"An error occurred (SignatureDoesNotMatch) when calling the GetUser operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.",
|
|
271
|
+
marks=[
|
|
272
|
+
pytest.mark.aws,
|
|
273
|
+
pytest.mark.cloud,
|
|
274
|
+
],
|
|
176
275
|
),
|
|
177
|
-
(
|
|
276
|
+
pytest.param(
|
|
178
277
|
CredentialTypes.AZURE,
|
|
179
278
|
CredentialsUtil.invalid_azure_credentials(),
|
|
180
279
|
"Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app",
|
|
280
|
+
marks=[
|
|
281
|
+
pytest.mark.azure,
|
|
282
|
+
pytest.mark.cloud,
|
|
283
|
+
],
|
|
181
284
|
),
|
|
182
285
|
pytest.param(
|
|
183
286
|
CredentialTypes.GCP,
|
|
@@ -185,48 +288,65 @@ invalid_integrations = [
|
|
|
185
288
|
"Error: ('Could not deserialize key data. The data may be in an incorrect format, "
|
|
186
289
|
+ "the provided password may be incorrect, it may be encrypted with an unsupported algorithm, "
|
|
187
290
|
+ "or it may be an unsupported key type",
|
|
188
|
-
marks=
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
291
|
+
marks=[
|
|
292
|
+
pytest.mark.gcp,
|
|
293
|
+
pytest.mark.cloud,
|
|
294
|
+
pytest.mark.skipif(
|
|
295
|
+
os.getenv("ENV") == "azure",
|
|
296
|
+
reason="Still have an issue with encoding long strings",
|
|
297
|
+
),
|
|
298
|
+
],
|
|
192
299
|
),
|
|
193
|
-
(
|
|
300
|
+
pytest.param(
|
|
194
301
|
CredentialTypes.SONAR,
|
|
195
302
|
CredentialsUtil.invalid_sonar_credentials(),
|
|
196
303
|
"Invalid token",
|
|
304
|
+
marks=pytest.mark.sonar,
|
|
197
305
|
),
|
|
198
|
-
(
|
|
306
|
+
pytest.param(
|
|
199
307
|
CredentialTypes.SONAR,
|
|
200
308
|
CredentialsUtil.invalid_sonar_cloud_credentials(),
|
|
201
309
|
"Invalid token",
|
|
310
|
+
marks=pytest.mark.sonar,
|
|
202
311
|
),
|
|
203
312
|
pytest.param(
|
|
204
313
|
CredentialTypes.EMAIL,
|
|
205
314
|
CredentialsUtil.invalid_gmail_credentials(),
|
|
206
315
|
"SMTP Code: 535. SMTP error",
|
|
207
|
-
marks=
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
316
|
+
marks=[
|
|
317
|
+
pytest.mark.email,
|
|
318
|
+
pytest.mark.notification,
|
|
319
|
+
pytest.mark.skipif(
|
|
320
|
+
os.getenv("ENV") == "local",
|
|
321
|
+
reason="Skipping this test on local environment",
|
|
322
|
+
),
|
|
323
|
+
],
|
|
211
324
|
),
|
|
212
|
-
(
|
|
325
|
+
pytest.param(
|
|
213
326
|
CredentialTypes.JIRA,
|
|
214
327
|
CredentialsUtil.invalid_jira_credentials(),
|
|
215
328
|
"Unauthorized (401)",
|
|
329
|
+
marks=pytest.mark.jira,
|
|
216
330
|
),
|
|
217
|
-
(
|
|
331
|
+
pytest.param(
|
|
218
332
|
CredentialTypes.CONFLUENCE,
|
|
219
333
|
CredentialsUtil.invalid_confluence_credentials(),
|
|
220
334
|
"Access denied",
|
|
335
|
+
marks=pytest.mark.confluence,
|
|
221
336
|
),
|
|
222
|
-
(
|
|
337
|
+
pytest.param(
|
|
223
338
|
CredentialTypes.SERVICE_NOW,
|
|
224
339
|
CredentialsUtil.invalid_servicenow_credentials(),
|
|
225
340
|
'ServiceNow tool exception. Status: 401. Response: {"error":{"message":"User Not Authenticated","detail":"Required to provide Auth information"}',
|
|
341
|
+
marks=pytest.mark.servicenow,
|
|
226
342
|
),
|
|
227
|
-
(
|
|
343
|
+
pytest.param(
|
|
228
344
|
CredentialTypes.KUBERNETES,
|
|
229
345
|
CredentialsUtil.invalid_kubernetes_credentials(),
|
|
230
346
|
"Error: (401)\nReason: Unauthorized",
|
|
347
|
+
marks=[
|
|
348
|
+
pytest.mark.kubernetes,
|
|
349
|
+
pytest.mark.cloud,
|
|
350
|
+
],
|
|
231
351
|
),
|
|
232
352
|
]
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
1
3
|
from codemie_test_harness.tests.enums.tools import ProjectManagementTool
|
|
2
4
|
from codemie_test_harness.tests.test_data.pm_tools_test_data import (
|
|
3
5
|
JIRA_TOOL_PROMPT,
|
|
@@ -12,28 +14,32 @@ from codemie_test_harness.tests.test_data.pm_tools_test_data import (
|
|
|
12
14
|
from codemie_test_harness.tests.utils.constants import ProjectManagementIntegrationType
|
|
13
15
|
|
|
14
16
|
pm_tools_test_data = [
|
|
15
|
-
(
|
|
17
|
+
pytest.param(
|
|
16
18
|
ProjectManagementTool.JIRA,
|
|
17
19
|
ProjectManagementIntegrationType.JIRA,
|
|
18
20
|
JIRA_TOOL_PROMPT,
|
|
19
21
|
RESPONSE_FOR_JIRA_TOOL,
|
|
22
|
+
marks=pytest.mark.jira,
|
|
20
23
|
),
|
|
21
|
-
(
|
|
24
|
+
pytest.param(
|
|
22
25
|
ProjectManagementTool.CONFLUENCE,
|
|
23
26
|
ProjectManagementIntegrationType.CONFLUENCE,
|
|
24
27
|
CONFLUENCE_TOOL_PROMPT,
|
|
25
28
|
RESPONSE_FOR_CONFLUENCE_TOOL,
|
|
29
|
+
marks=pytest.mark.confluence,
|
|
26
30
|
),
|
|
27
|
-
(
|
|
31
|
+
pytest.param(
|
|
28
32
|
ProjectManagementTool.JIRA,
|
|
29
33
|
ProjectManagementIntegrationType.JIRA_CLOUD,
|
|
30
34
|
JIRA_CLOUD_TOOL_PROMPT,
|
|
31
35
|
RESPONSE_FOR_JIRA_CLOUD_TOOL,
|
|
36
|
+
marks=[pytest.mark.jira, pytest.mark.jira_cloud],
|
|
32
37
|
),
|
|
33
|
-
(
|
|
38
|
+
pytest.param(
|
|
34
39
|
ProjectManagementTool.CONFLUENCE,
|
|
35
40
|
ProjectManagementIntegrationType.CONFLUENCE_CLOUD,
|
|
36
41
|
CONFLUENCE_CLOUD_TOOL_PROMPT,
|
|
37
42
|
RESPONSE_FOR_CONFLUENCE_CLOUD_TOOL,
|
|
43
|
+
marks=[pytest.mark.confluence, pytest.mark.confluence_cloud],
|
|
38
44
|
),
|
|
39
45
|
]
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
|
|
3
|
+
import pytest
|
|
4
|
+
|
|
3
5
|
from codemie_test_harness.tests.enums.tools import VcsTool
|
|
4
6
|
|
|
5
7
|
GITHUB_TOOL_TASK = (
|
|
@@ -57,6 +59,10 @@ RESPONSE_FOR_GITLAB = f"""
|
|
|
57
59
|
"""
|
|
58
60
|
|
|
59
61
|
vcs_tools_test_data = [
|
|
60
|
-
(
|
|
61
|
-
|
|
62
|
+
pytest.param(
|
|
63
|
+
VcsTool.GITHUB, GITHUB_TOOL_TASK, RESPONSE_FOR_GITHUB, marks=pytest.mark.github
|
|
64
|
+
),
|
|
65
|
+
pytest.param(
|
|
66
|
+
VcsTool.GITLAB, GITLAB_TOOL_TASK, RESPONSE_FOR_GITLAB, marks=pytest.mark.gitlab
|
|
67
|
+
),
|
|
62
68
|
]
|
|
@@ -11,6 +11,7 @@ from codemie_test_harness.tests.ui.pageobject.workflows.create_workflow_page imp
|
|
|
11
11
|
from codemie_test_harness.tests.utils.base_utils import get_random_name
|
|
12
12
|
|
|
13
13
|
|
|
14
|
+
@pytest.mark.workflow_ui
|
|
14
15
|
@pytest.mark.ui
|
|
15
16
|
def test_create_workflow_page_elements_visibility(page):
|
|
16
17
|
"""Test that all main elements are visible on Create Workflow page."""
|
|
@@ -33,6 +34,7 @@ def test_create_workflow_page_elements_visibility(page):
|
|
|
33
34
|
create_page.sidebar.should_have_workflows_title()
|
|
34
35
|
|
|
35
36
|
|
|
37
|
+
@pytest.mark.workflow_ui
|
|
36
38
|
@pytest.mark.ui
|
|
37
39
|
def test_create_workflow_form_interactions(page):
|
|
38
40
|
"""Test form field interactions and input validation."""
|
|
@@ -63,6 +65,7 @@ def test_create_workflow_form_interactions(page):
|
|
|
63
65
|
create_page.should_have_shared_switch_unchecked()
|
|
64
66
|
|
|
65
67
|
|
|
68
|
+
@pytest.mark.workflow_ui
|
|
66
69
|
@pytest.mark.ui
|
|
67
70
|
def test_create_workflow_dropdowns_interaction(page):
|
|
68
71
|
"""Test dropdown interactions for project and workflow mode."""
|
|
@@ -84,6 +87,7 @@ def test_create_workflow_dropdowns_interaction(page):
|
|
|
84
87
|
create_page.should_have_workflow_mode_selected("Sequential")
|
|
85
88
|
|
|
86
89
|
|
|
90
|
+
@pytest.mark.workflow_ui
|
|
87
91
|
@pytest.mark.ui
|
|
88
92
|
def test_create_workflow_yaml_editor_functionality(page):
|
|
89
93
|
"""Test YAML editor functionality."""
|
|
@@ -105,6 +109,7 @@ def test_create_workflow_yaml_editor_functionality(page):
|
|
|
105
109
|
create_page.should_have_entered_yaml_configuration(test_yaml)
|
|
106
110
|
|
|
107
111
|
|
|
112
|
+
@pytest.mark.workflow_ui
|
|
108
113
|
@pytest.mark.ui
|
|
109
114
|
def test_create_workflow_visualization_section(page):
|
|
110
115
|
"""Test workflow visualization section functionality."""
|
|
@@ -121,6 +126,7 @@ def test_create_workflow_visualization_section(page):
|
|
|
121
126
|
create_page.should_have_visualization_section_visible()
|
|
122
127
|
|
|
123
128
|
|
|
129
|
+
@pytest.mark.workflow_ui
|
|
124
130
|
@pytest.mark.ui
|
|
125
131
|
def test_create_workflow_navigation_buttons(page):
|
|
126
132
|
"""Test navigation button interactions."""
|
|
@@ -143,6 +149,7 @@ def test_create_workflow_navigation_buttons(page):
|
|
|
143
149
|
create_page.should_have_url_containing("#/workflows/my")
|
|
144
150
|
|
|
145
151
|
|
|
152
|
+
@pytest.mark.workflow_ui
|
|
146
153
|
@pytest.mark.ui
|
|
147
154
|
def test_create_workflow_sidebar_functionality(page):
|
|
148
155
|
"""Test sidebar functionality from Create Workflow page."""
|
|
@@ -164,6 +171,7 @@ def test_create_workflow_sidebar_functionality(page):
|
|
|
164
171
|
create_page.should_have_url_containing("#/workflows/all")
|
|
165
172
|
|
|
166
173
|
|
|
174
|
+
@pytest.mark.workflow_ui
|
|
167
175
|
@pytest.mark.ui
|
|
168
176
|
def test_create_workflow_header_navigation(page):
|
|
169
177
|
"""Test header navigation from Create Workflow page."""
|
|
@@ -185,6 +193,7 @@ def test_create_workflow_header_navigation(page):
|
|
|
185
193
|
create_page.should_have_url_containing("#/workflows")
|
|
186
194
|
|
|
187
195
|
|
|
196
|
+
@pytest.mark.workflow_ui
|
|
188
197
|
@pytest.mark.ui
|
|
189
198
|
def test_create_workflow_workflow_mode_information(page):
|
|
190
199
|
"""Test workflow mode information display."""
|
|
@@ -195,6 +204,7 @@ def test_create_workflow_workflow_mode_information(page):
|
|
|
195
204
|
create_page.should_show_workflow_mode_info()
|
|
196
205
|
|
|
197
206
|
|
|
207
|
+
@pytest.mark.workflow_ui
|
|
198
208
|
@pytest.mark.ui
|
|
199
209
|
def test_create_workflow_default_field_values(page):
|
|
200
210
|
"""Test default field values on page load."""
|
|
@@ -213,6 +223,7 @@ def test_create_workflow_default_field_values(page):
|
|
|
213
223
|
create_page.should_have_workflow_mode_selected("Sequential")
|
|
214
224
|
|
|
215
225
|
|
|
226
|
+
@pytest.mark.workflow_ui
|
|
216
227
|
@pytest.mark.ui
|
|
217
228
|
def test_create_workflow_button_states(page):
|
|
218
229
|
"""Test create button enabled/disabled states."""
|
|
@@ -231,6 +242,7 @@ def test_create_workflow_button_states(page):
|
|
|
231
242
|
create_page.should_have_create_button_disabled()
|
|
232
243
|
|
|
233
244
|
|
|
245
|
+
@pytest.mark.workflow_ui
|
|
234
246
|
@pytest.mark.ui
|
|
235
247
|
def test_create_workflow_form_validation(page):
|
|
236
248
|
"""Test form validation scenarios."""
|
|
@@ -247,6 +259,7 @@ def test_create_workflow_form_validation(page):
|
|
|
247
259
|
)
|
|
248
260
|
|
|
249
261
|
|
|
262
|
+
@pytest.mark.workflow_ui
|
|
250
263
|
@pytest.mark.ui
|
|
251
264
|
def test_create_workflow_complete_workflow_creation(page):
|
|
252
265
|
"""Test complete workflow creation using the create_workflow method."""
|