codemie-test-harness 0.1.179__py3-none-any.whl → 0.1.181__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 (134) hide show
  1. codemie_test_harness/cli/cli.py +2 -0
  2. codemie_test_harness/cli/commands/marks_cmd.py +39 -0
  3. codemie_test_harness/cli/marks_utils.py +338 -0
  4. codemie_test_harness/cli/runner.py +40 -0
  5. codemie_test_harness/tests/assistant/datasource/test_code_datasource.py +20 -7
  6. codemie_test_harness/tests/assistant/datasource/test_confluence_datasource.py +20 -7
  7. codemie_test_harness/tests/assistant/datasource/test_file_indexing.py +20 -9
  8. codemie_test_harness/tests/assistant/datasource/test_google_datasource.py +21 -7
  9. codemie_test_harness/tests/assistant/datasource/test_jira_datasource.py +22 -9
  10. codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool.py +29 -13
  11. codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_kit.py +29 -13
  12. codemie_test_harness/tests/assistant/default_integrations/test_default_integrations_for_tool_with_datasource.py +29 -13
  13. codemie_test_harness/tests/assistant/test_assistants.py +53 -35
  14. codemie_test_harness/tests/assistant/tools/access_management/test_keycloak_tool.py +7 -2
  15. codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_test_plan_tools.py +39 -11
  16. codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_wiki_tools.py +27 -8
  17. codemie_test_harness/tests/assistant/tools/ado/test_assistant_for_ado_work_item_tools.py +27 -7
  18. codemie_test_harness/tests/assistant/tools/cloud/test_cloud_tools.py +9 -3
  19. codemie_test_harness/tests/assistant/tools/codebase/test_codebase_tools.py +13 -4
  20. codemie_test_harness/tests/assistant/tools/datamanagement/test_assistant_with_data_management_tools.py +32 -11
  21. codemie_test_harness/tests/assistant/tools/filemanagement/test_assistant_with_file_management_tools.py +37 -12
  22. codemie_test_harness/tests/assistant/tools/git/test_assistant_with_git_tools.py +48 -17
  23. codemie_test_harness/tests/assistant/tools/mcp/test_cli_mcp_server.py +16 -9
  24. codemie_test_harness/tests/assistant/tools/mcp/test_mcp_servers.py +14 -8
  25. codemie_test_harness/tests/assistant/tools/notification/test_assistant_notification_tools.py +11 -4
  26. codemie_test_harness/tests/assistant/tools/openapi/test_assistant_with_open_api_tools.py +6 -2
  27. codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_development_plugin.py +27 -8
  28. codemie_test_harness/tests/assistant/tools/plugin/test_assistant_with_plugin_and_mcp_servers.py +17 -5
  29. codemie_test_harness/tests/assistant/tools/plugin/test_single_assistant_dual_time_plugins.py +12 -3
  30. codemie_test_harness/tests/assistant/tools/project_management/test_assistant_pm_tools.py +36 -17
  31. codemie_test_harness/tests/assistant/tools/report_portal/test_assistant_report_portal_tools.py +7 -2
  32. codemie_test_harness/tests/assistant/tools/research/test_assistant_research_tools.py +17 -5
  33. codemie_test_harness/tests/assistant/tools/servicenow/test_servicenow_tools.py +6 -2
  34. codemie_test_harness/tests/assistant/tools/vcs/test_assistant_with_vcs_tools.py +7 -2
  35. codemie_test_harness/tests/conversations/test_conversations_endpoints.py +5 -5
  36. codemie_test_harness/tests/e2e/test_e2e.py +6 -6
  37. codemie_test_harness/tests/enums/tools.py +32 -0
  38. codemie_test_harness/tests/integrations/project/test_default_integrations.py +14 -14
  39. codemie_test_harness/tests/integrations/project/test_project_integrations.py +9 -9
  40. codemie_test_harness/tests/integrations/user/test_default_integrations.py +14 -14
  41. codemie_test_harness/tests/integrations/user/test_user_integrations.py +12 -12
  42. codemie_test_harness/tests/llm/assistants/test_lite_llm.py +2 -2
  43. codemie_test_harness/tests/llm/assistants/test_llm.py +3 -3
  44. codemie_test_harness/tests/providers/test_providers_endpoints.py +11 -11
  45. codemie_test_harness/tests/search/test_search_assistant.py +1 -1
  46. codemie_test_harness/tests/search/test_search_datasource.py +5 -5
  47. codemie_test_harness/tests/search/test_search_integration.py +2 -2
  48. codemie_test_harness/tests/search/test_search_workflow.py +1 -1
  49. codemie_test_harness/tests/service/test_assistant_service.py +1 -1
  50. codemie_test_harness/tests/test_data/codebase_tools_test_data.py +11 -5
  51. codemie_test_harness/tests/test_data/file_test_data.py +17 -0
  52. codemie_test_harness/tests/ui/assistants/test_create_assistant.py +11 -11
  53. codemie_test_harness/tests/ui/datasource/test_create_datasource.py +7 -7
  54. codemie_test_harness/tests/ui/datasource/test_datasource_page.py +3 -3
  55. codemie_test_harness/tests/ui/datasource/test_edit_datasource.py +5 -5
  56. codemie_test_harness/tests/ui/datasource/test_view_datasource.py +5 -5
  57. codemie_test_harness/tests/ui/integrations/test_create_integration.py +9 -9
  58. codemie_test_harness/tests/ui/workflows/test_create_workflow.py +12 -12
  59. codemie_test_harness/tests/ui/workflows/test_edit_workflow.py +15 -15
  60. codemie_test_harness/tests/ui/workflows/test_workflow_details.py +19 -19
  61. codemie_test_harness/tests/ui/workflows/test_workflow_executions_page.py +36 -36
  62. codemie_test_harness/tests/ui/workflows/test_workflow_templates.py +8 -8
  63. codemie_test_harness/tests/ui/workflows/test_workflows.py +8 -8
  64. codemie_test_harness/tests/utils/assistant_utils.py +34 -1
  65. codemie_test_harness/tests/utils/base_utils.py +61 -0
  66. codemie_test_harness/tests/workflow/assistant_tools/access_management/test_workflow_with_assistant_with_keycloak_tool.py +1 -1
  67. codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_test_plan_tools.py +2 -2
  68. codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_wiki_tools.py +2 -2
  69. codemie_test_harness/tests/workflow/assistant_tools/ado/test_workflow_with_assistant_with_ado_work_item_tools.py +2 -2
  70. codemie_test_harness/tests/workflow/assistant_tools/cloud/test_workflow_with_assistant_cloud_tools.py +1 -1
  71. codemie_test_harness/tests/workflow/assistant_tools/codebase/test_worfklow_with_assistant_codebase_tools.py +2 -2
  72. codemie_test_harness/tests/workflow/assistant_tools/data_management/test_workflow_with_assistant_with_data_management_tools.py +2 -2
  73. codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool.py +8 -8
  74. codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +8 -8
  75. codemie_test_harness/tests/workflow/assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +8 -8
  76. codemie_test_harness/tests/workflow/assistant_tools/file_management/test_workflow_with_assistant_with_file_management_tools.py +5 -5
  77. codemie_test_harness/tests/workflow/assistant_tools/git/test_workflow_with_assistant_git_tools.py +7 -7
  78. codemie_test_harness/tests/workflow/assistant_tools/mcp/test_workflow_with_assistant_with_mcp_server.py +3 -3
  79. codemie_test_harness/tests/workflow/assistant_tools/notification/test_workflow_with_assistant_notification_tools.py +2 -2
  80. codemie_test_harness/tests/workflow/assistant_tools/open_api/test_workflow_with_assistant_with_open_api_tools.py +1 -1
  81. codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_development_plugin.py +2 -2
  82. codemie_test_harness/tests/workflow/assistant_tools/plugin/test_workflow_with_assistant_with_plugin_and_mcp_servers.py +2 -2
  83. codemie_test_harness/tests/workflow/assistant_tools/project_management/test_workflow_with_assistant_pm_tools.py +1 -1
  84. codemie_test_harness/tests/workflow/assistant_tools/report_portal/test_workflow_with_assistant_with_report_portal_tools.py +1 -1
  85. codemie_test_harness/tests/workflow/assistant_tools/research/test_workflow_with_assistant_research_tools.py +2 -2
  86. codemie_test_harness/tests/workflow/assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +1 -1
  87. codemie_test_harness/tests/workflow/assistant_tools/vcs/workflow_with_assistant_vcs_tools.py +1 -1
  88. codemie_test_harness/tests/workflow/config_validation/test_config_validation.py +1 -1
  89. codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool.py +8 -8
  90. codemie_test_harness/tests/workflow/direct_tools_calling/default_integrations/test_default_integrations_for_tool_kit.py +8 -8
  91. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_access_management_tool.py +3 -3
  92. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_test_plan_tools.py +3 -3
  93. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_wiki_tools.py +3 -3
  94. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_ado_work_item_tools.py +3 -3
  95. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_cloud_tools.py +3 -3
  96. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_codebase_tools.py +3 -3
  97. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools_elastic.py +3 -3
  98. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_data_management_tools_sql.py +3 -3
  99. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_file_management_tools.py +3 -3
  100. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_notification_tools.py +3 -3
  101. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_open_api_tools.py +3 -3
  102. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_plugin_tools.py +4 -4
  103. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_project_management_tools.py +3 -3
  104. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_report_portal_tools.py +3 -3
  105. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_research_tools.py +3 -3
  106. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_servicenow_tools.py +3 -3
  107. codemie_test_harness/tests/workflow/direct_tools_calling/test_workflow_with_vcs_tools.py +3 -3
  108. codemie_test_harness/tests/workflow/test_workflows.py +1 -1
  109. codemie_test_harness/tests/workflow/virtual_assistant_tools/access_management/test_workflow_with_keycloak_tool.py +1 -1
  110. codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_test_plan_tools.py +2 -2
  111. codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_wiki_tools.py +2 -2
  112. codemie_test_harness/tests/workflow/virtual_assistant_tools/ado/test_workflow_with_ado_work_item_tools.py +2 -2
  113. codemie_test_harness/tests/workflow/virtual_assistant_tools/cloud/test_workflow_with_cloud_tools.py +4 -4
  114. codemie_test_harness/tests/workflow/virtual_assistant_tools/codebase/test_workflow_with_codebase_tools.py +2 -2
  115. codemie_test_harness/tests/workflow/virtual_assistant_tools/data_management/test_workflow_with_data_management_tools.py +2 -2
  116. codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool.py +8 -8
  117. codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_kit.py +8 -8
  118. codemie_test_harness/tests/workflow/virtual_assistant_tools/default_integrations/test_default_integrations_for_tool_with_datasource.py +8 -8
  119. codemie_test_harness/tests/workflow/virtual_assistant_tools/file_management/test_workflow_with_file_management_tools.py +5 -5
  120. codemie_test_harness/tests/workflow/virtual_assistant_tools/git/test_workflow_with_git_tools.py +7 -7
  121. codemie_test_harness/tests/workflow/virtual_assistant_tools/mcp/test_workflow_with_mcp_server.py +3 -3
  122. codemie_test_harness/tests/workflow/virtual_assistant_tools/notification/test_workflow_with_notification_tools.py +4 -4
  123. codemie_test_harness/tests/workflow/virtual_assistant_tools/open_api/test_workflow_with_open_api_tools.py +2 -2
  124. codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_development_plugin.py +2 -2
  125. codemie_test_harness/tests/workflow/virtual_assistant_tools/plugin/test_workflow_with_plugin_and_mcp_servers.py +2 -2
  126. codemie_test_harness/tests/workflow/virtual_assistant_tools/project_management/test_workflow_with_project_management_tools.py +2 -2
  127. codemie_test_harness/tests/workflow/virtual_assistant_tools/report_portal/test_workflow_with_report_portal_tool.py +1 -1
  128. codemie_test_harness/tests/workflow/virtual_assistant_tools/research/test_workflow_with_research_tools.py +2 -2
  129. codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py +1 -1
  130. codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/test_workflow_with_vcs_tools.py +1 -1
  131. {codemie_test_harness-0.1.179.dist-info → codemie_test_harness-0.1.181.dist-info}/METADATA +8 -8
  132. {codemie_test_harness-0.1.179.dist-info → codemie_test_harness-0.1.181.dist-info}/RECORD +134 -132
  133. {codemie_test_harness-0.1.179.dist-info → codemie_test_harness-0.1.181.dist-info}/WHEEL +0 -0
  134. {codemie_test_harness-0.1.179.dist-info → codemie_test_harness-0.1.181.dist-info}/entry_points.txt +0 -0
@@ -20,7 +20,7 @@ from codemie_test_harness.tests.ui.pageobject.datasources.datasource_page import
20
20
  from codemie_test_harness.tests.utils.constants import FILES_PATH
21
21
 
22
22
 
23
- @pytest.mark.datasource_ui
23
+ @pytest.mark.datasource
24
24
  @pytest.mark.ui
25
25
  def test_open_create_datasource_page_and_elements(page):
26
26
  """Open Create Datasource page and verify critical elements."""
@@ -49,7 +49,7 @@ def test_open_create_datasource_page_and_elements(page):
49
49
  create_page.should_see_google_fields()
50
50
 
51
51
 
52
- @pytest.mark.datasource_ui
52
+ @pytest.mark.datasource
53
53
  @pytest.mark.ui
54
54
  def test_datasource_creation_validation(page):
55
55
  """Test create datasource without data and observing errors."""
@@ -77,7 +77,7 @@ def test_datasource_creation_validation(page):
77
77
  create_page.should_see_error_for_empty_google_fields()
78
78
 
79
79
 
80
- @pytest.mark.datasource_ui
80
+ @pytest.mark.datasource
81
81
  @pytest.mark.ui
82
82
  def test_create_git_datasource(page, git_integration):
83
83
  """Test creating a new datasource with all required fields."""
@@ -101,7 +101,7 @@ def test_create_git_datasource(page, git_integration):
101
101
  )
102
102
 
103
103
 
104
- @pytest.mark.datasource_ui
104
+ @pytest.mark.datasource
105
105
  @pytest.mark.ui
106
106
  def test_create_confluence_datasource(page, confluence_integration):
107
107
  """Test creating a new datasource with all required fields."""
@@ -124,7 +124,7 @@ def test_create_confluence_datasource(page, confluence_integration):
124
124
  )
125
125
 
126
126
 
127
- @pytest.mark.datasource_ui
127
+ @pytest.mark.datasource
128
128
  @pytest.mark.ui
129
129
  def test_create_jira_datasource(page, jira_integration):
130
130
  """Test creating a new datasource with all required fields."""
@@ -147,7 +147,7 @@ def test_create_jira_datasource(page, jira_integration):
147
147
  )
148
148
 
149
149
 
150
- @pytest.mark.datasource_ui
150
+ @pytest.mark.datasource
151
151
  @pytest.mark.ui
152
152
  def test_create_file_datasource(page):
153
153
  """Test creating a new datasource with all required fields."""
@@ -169,7 +169,7 @@ def test_create_file_datasource(page):
169
169
  )
170
170
 
171
171
 
172
- @pytest.mark.datasource_ui
172
+ @pytest.mark.datasource
173
173
  @pytest.mark.ui
174
174
  def test_create_google_datasource(page):
175
175
  """Test creating a new datasource with all required fields."""
@@ -11,7 +11,7 @@ from codemie_test_harness.tests.ui._test_data.datasource_test_data import (
11
11
  )
12
12
 
13
13
 
14
- @pytest.mark.datasource_ui
14
+ @pytest.mark.datasource
15
15
  @pytest.mark.ui
16
16
  def test_datasource_sidebar_interaction(page):
17
17
  """Test sidebar filters interactions."""
@@ -35,7 +35,7 @@ def test_datasource_sidebar_interaction(page):
35
35
  datasource_page.sidebar.click_clear_all_button().should_see_cleared_filters()
36
36
 
37
37
 
38
- @pytest.mark.datasource_ui
38
+ @pytest.mark.datasource
39
39
  @pytest.mark.ui
40
40
  def test_datasource_sidebar_hiding_elements(page):
41
41
  """Test sidebar filters hiding."""
@@ -48,7 +48,7 @@ def test_datasource_sidebar_hiding_elements(page):
48
48
  datasource_page.sidebar.click_status_filter_hide_button().should_not_see_status_filters()
49
49
 
50
50
 
51
- @pytest.mark.datasource_ui
51
+ @pytest.mark.datasource
52
52
  @pytest.mark.ui
53
53
  def test_datasource_page_elements_visibility(page):
54
54
  """Test DataSource index page and sidebar elements are visible."""
@@ -18,7 +18,7 @@ from codemie_test_harness.tests.ui.pageobject.datasources.datasource_page import
18
18
  from codemie_test_harness.tests.utils.constants import FILES_PATH
19
19
 
20
20
 
21
- @pytest.mark.datasource_ui
21
+ @pytest.mark.datasource
22
22
  @pytest.mark.ui
23
23
  def test_edit_git_datasource(
24
24
  page, datasource_utils, git_integration, default_embedding_llm
@@ -54,7 +54,7 @@ def test_edit_git_datasource(
54
54
  edit_page.should_see_save_reindex_button()
55
55
 
56
56
 
57
- @pytest.mark.datasource_ui
57
+ @pytest.mark.datasource
58
58
  @pytest.mark.ui
59
59
  def test_edit_confluence_datasource(page, datasource_utils, confluence_integration):
60
60
  """Test that all main Edit Datasource page elements are visible."""
@@ -87,7 +87,7 @@ def test_edit_confluence_datasource(page, datasource_utils, confluence_integrati
87
87
  edit_page.should_see_save_reindex_button()
88
88
 
89
89
 
90
- @pytest.mark.datasource_ui
90
+ @pytest.mark.datasource
91
91
  @pytest.mark.ui
92
92
  def test_edit_jira_datasource(page, datasource_utils, jira_integration):
93
93
  """Test that all main Edit Datasource page elements are visible."""
@@ -120,7 +120,7 @@ def test_edit_jira_datasource(page, datasource_utils, jira_integration):
120
120
  edit_page.should_see_save_reindex_button()
121
121
 
122
122
 
123
- @pytest.mark.datasource_ui
123
+ @pytest.mark.datasource
124
124
  @pytest.mark.ui
125
125
  def test_edit_file_datasource(page, datasource_utils):
126
126
  """Test that all main Edit Datasource page elements are visible."""
@@ -151,7 +151,7 @@ def test_edit_file_datasource(page, datasource_utils):
151
151
  edit_page.should_see_disabled_name_input(datasource.name)
152
152
 
153
153
 
154
- @pytest.mark.datasource_ui
154
+ @pytest.mark.datasource
155
155
  @pytest.mark.ui
156
156
  def test_edit_google_datasource(page, datasource_utils):
157
157
  """Test that all main Edit Datasource page elements are visible."""
@@ -21,7 +21,7 @@ from codemie_test_harness.tests.ui._test_data.datasource_test_data import (
21
21
  from codemie_test_harness.tests.utils.constants import FILES_PATH
22
22
 
23
23
 
24
- @pytest.mark.datasource_ui
24
+ @pytest.mark.datasource
25
25
  @pytest.mark.ui
26
26
  def test_view_git_datasource_page(
27
27
  page, datasource_utils, git_integration, default_embedding_llm, client
@@ -62,7 +62,7 @@ def test_view_git_datasource_page(
62
62
  view_page.should_open_and_see_processed_data()
63
63
 
64
64
 
65
- @pytest.mark.datasource_ui
65
+ @pytest.mark.datasource
66
66
  @pytest.mark.ui
67
67
  def test_view_confluence_datasource_page(
68
68
  page, datasource_utils, confluence_integration, default_embedding_llm, client
@@ -102,7 +102,7 @@ def test_view_confluence_datasource_page(
102
102
  view_page.should_see_processed_data()
103
103
 
104
104
 
105
- @pytest.mark.datasource_ui
105
+ @pytest.mark.datasource
106
106
  @pytest.mark.ui
107
107
  def test_view_jira_datasource_page(
108
108
  page, datasource_utils, jira_integration, default_embedding_llm, client
@@ -142,7 +142,7 @@ def test_view_jira_datasource_page(
142
142
  view_page.should_see_processed_data()
143
143
 
144
144
 
145
- @pytest.mark.datasource_ui
145
+ @pytest.mark.datasource
146
146
  @pytest.mark.ui
147
147
  def test_view_file_datasource_page(
148
148
  page, datasource_utils, default_embedding_llm, client
@@ -182,7 +182,7 @@ def test_view_file_datasource_page(
182
182
  view_page.should_see_processed_data()
183
183
 
184
184
 
185
- @pytest.mark.datasource_ui
185
+ @pytest.mark.datasource
186
186
  @pytest.mark.ui
187
187
  def test_view_google_datasource_page(
188
188
  page, datasource_utils, default_embedding_llm, client
@@ -23,7 +23,7 @@ from codemie_test_harness.tests.ui.pageobject.integrations.integrations_page imp
23
23
  class TestCreateIntegrationNavigation:
24
24
  """Test class for integration creation navigation and page access."""
25
25
 
26
- @pytest.mark.integration_ui
26
+ @pytest.mark.integration
27
27
  @pytest.mark.ui
28
28
  @pytest.mark.smoke
29
29
  def test_navigate_to_integrations_via_menu(self, page):
@@ -46,7 +46,7 @@ class TestCreateIntegrationNavigation:
46
46
  integrations_page.should_see_integration_type_switcher()
47
47
  integrations_page.should_see_integrations_table()
48
48
 
49
- @pytest.mark.integration_ui
49
+ @pytest.mark.integration
50
50
  @pytest.mark.ui
51
51
  @pytest.mark.smoke
52
52
  def test_navigate_to_create_integration_via_direct_url(self, page):
@@ -72,7 +72,7 @@ class TestCreateIntegrationNavigation:
72
72
  # Assert
73
73
  create_integration_page.should_be_on_create_project_integration_page()
74
74
 
75
- @pytest.mark.integration_ui
75
+ @pytest.mark.integration
76
76
  @pytest.mark.ui
77
77
  @pytest.mark.smoke
78
78
  def test_navigate_to_create_integration_from_integrations_page(self, page):
@@ -105,7 +105,7 @@ class TestCreateIntegrationNavigation:
105
105
  class TestIntegrationCreationPageElements:
106
106
  """Test class for integration creation page elements display."""
107
107
 
108
- @pytest.mark.integration_ui
108
+ @pytest.mark.integration
109
109
  @pytest.mark.ui
110
110
  @pytest.mark.smoke
111
111
  @pytest.mark.parametrize(
@@ -163,7 +163,7 @@ class TestIntegrationCreationPageElements:
163
163
  class TestIntegrationCreationWorkflow:
164
164
  """Test class for the complete integration creation workflow."""
165
165
 
166
- @pytest.mark.integration_ui
166
+ @pytest.mark.integration
167
167
  @pytest.mark.ui
168
168
  @pytest.mark.smoke
169
169
  def test_create_git_integration_complete_workflow(self, page):
@@ -191,7 +191,7 @@ class TestIntegrationCreationWorkflow:
191
191
  .should_see_specific_integration(integration_test_data.alias)
192
192
  )
193
193
 
194
- @pytest.mark.integration_ui
194
+ @pytest.mark.integration
195
195
  @pytest.mark.ui
196
196
  @pytest.mark.smoke
197
197
  def test_create_jira_integration_complete_workflow(self, page):
@@ -224,7 +224,7 @@ class TestIntegrationCreationWorkflow:
224
224
  .should_see_specific_integration(integration_test_data.alias)
225
225
  )
226
226
 
227
- @pytest.mark.integration_ui
227
+ @pytest.mark.integration
228
228
  @pytest.mark.ui
229
229
  @pytest.mark.smoke
230
230
  def test_create_confluence_integration_complete_workflow(self, page):
@@ -262,7 +262,7 @@ class TestIntegrationCreationWorkflow:
262
262
  class TestIntegrationFormUserExperience:
263
263
  """Test class for integration form user experience and usability."""
264
264
 
265
- @pytest.mark.integration_ui
265
+ @pytest.mark.integration
266
266
  @pytest.mark.ui
267
267
  @pytest.mark.smoke
268
268
  def test_form_reset_and_cancel_functionality(self, page):
@@ -290,7 +290,7 @@ class TestIntegrationFormUserExperience:
290
290
  # Verify the cancelled integration was not created
291
291
  integrations_page.should_not_see_integration(cancelled_integration_alias)
292
292
 
293
- @pytest.mark.integration_ui
293
+ @pytest.mark.integration
294
294
  @pytest.mark.ui
295
295
  @pytest.mark.smoke
296
296
  def test_alias_field_validation_message(self, page):
@@ -11,7 +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
+ @pytest.mark.workflow
15
15
  @pytest.mark.ui
16
16
  def test_create_workflow_page_elements_visibility(page):
17
17
  """Test that all main elements are visible on Create Workflow page."""
@@ -34,7 +34,7 @@ def test_create_workflow_page_elements_visibility(page):
34
34
  create_page.sidebar.should_have_workflows_title()
35
35
 
36
36
 
37
- @pytest.mark.workflow_ui
37
+ @pytest.mark.workflow
38
38
  @pytest.mark.ui
39
39
  def test_create_workflow_form_interactions(page):
40
40
  """Test form field interactions and input validation."""
@@ -65,7 +65,7 @@ def test_create_workflow_form_interactions(page):
65
65
  create_page.should_have_shared_switch_unchecked()
66
66
 
67
67
 
68
- @pytest.mark.workflow_ui
68
+ @pytest.mark.workflow
69
69
  @pytest.mark.ui
70
70
  def test_create_workflow_dropdowns_interaction(page):
71
71
  """Test dropdown interactions for project."""
@@ -80,7 +80,7 @@ def test_create_workflow_dropdowns_interaction(page):
80
80
  create_page.should_see_project_selected(os.getenv("PROJECT_NAME"))
81
81
 
82
82
 
83
- @pytest.mark.workflow_ui
83
+ @pytest.mark.workflow
84
84
  @pytest.mark.ui
85
85
  def test_create_workflow_yaml_editor_functionality(page):
86
86
  """Test YAML editor functionality."""
@@ -102,7 +102,7 @@ def test_create_workflow_yaml_editor_functionality(page):
102
102
  create_page.should_have_entered_yaml_configuration(test_yaml)
103
103
 
104
104
 
105
- @pytest.mark.workflow_ui
105
+ @pytest.mark.workflow
106
106
  @pytest.mark.ui
107
107
  def test_create_workflow_visualization_section(page):
108
108
  """Test workflow visualization section functionality."""
@@ -119,7 +119,7 @@ def test_create_workflow_visualization_section(page):
119
119
  create_page.should_have_visualization_section_visible()
120
120
 
121
121
 
122
- @pytest.mark.workflow_ui
122
+ @pytest.mark.workflow
123
123
  @pytest.mark.ui
124
124
  def test_create_workflow_navigation_buttons(page):
125
125
  """Test navigation button interactions."""
@@ -142,7 +142,7 @@ def test_create_workflow_navigation_buttons(page):
142
142
  create_page.should_have_url_containing("#/workflows/my")
143
143
 
144
144
 
145
- @pytest.mark.workflow_ui
145
+ @pytest.mark.workflow
146
146
  @pytest.mark.ui
147
147
  def test_create_workflow_sidebar_functionality(page):
148
148
  """Test sidebar functionality from Create Workflow page."""
@@ -164,7 +164,7 @@ def test_create_workflow_sidebar_functionality(page):
164
164
  create_page.should_have_url_containing("#/workflows/all")
165
165
 
166
166
 
167
- @pytest.mark.workflow_ui
167
+ @pytest.mark.workflow
168
168
  @pytest.mark.ui
169
169
  def test_create_workflow_menu_navigation(page):
170
170
  """Test menu navigation from Create Workflow page."""
@@ -186,7 +186,7 @@ def test_create_workflow_menu_navigation(page):
186
186
  create_page.should_have_url_containing("#/workflows")
187
187
 
188
188
 
189
- @pytest.mark.workflow_ui
189
+ @pytest.mark.workflow
190
190
  @pytest.mark.ui
191
191
  def test_create_workflow_default_field_values(page):
192
192
  """Test default field values on page load."""
@@ -202,7 +202,7 @@ def test_create_workflow_default_field_values(page):
202
202
  create_page.should_have_shared_switch_unchecked()
203
203
 
204
204
 
205
- @pytest.mark.workflow_ui
205
+ @pytest.mark.workflow
206
206
  @pytest.mark.ui
207
207
  def test_create_workflow_button_states(page):
208
208
  """Test create button enabled/disabled states."""
@@ -221,7 +221,7 @@ def test_create_workflow_button_states(page):
221
221
  create_page.should_have_create_button_disabled()
222
222
 
223
223
 
224
- @pytest.mark.workflow_ui
224
+ @pytest.mark.workflow
225
225
  @pytest.mark.ui
226
226
  def test_create_workflow_form_validation(page):
227
227
  """Test form validation scenarios."""
@@ -238,7 +238,7 @@ def test_create_workflow_form_validation(page):
238
238
  )
239
239
 
240
240
 
241
- @pytest.mark.workflow_ui
241
+ @pytest.mark.workflow
242
242
  @pytest.mark.ui
243
243
  def test_create_workflow_complete_workflow_creation(page):
244
244
  """Test complete workflow creation using the create_workflow method."""
@@ -50,7 +50,7 @@ def test_workflow(workflow_utils, default_llm):
50
50
  workflow_utils.delete_workflow(created_workflow)
51
51
 
52
52
 
53
- @pytest.mark.workflow_ui
53
+ @pytest.mark.workflow
54
54
  @pytest.mark.ui
55
55
  def test_edit_workflow_page_elements_visibility(page, test_workflow):
56
56
  """Test that all main elements are visible on Edit Workflow page."""
@@ -72,7 +72,7 @@ def test_edit_workflow_page_elements_visibility(page, test_workflow):
72
72
  edit_page.sidebar.should_have_workflows_title()
73
73
 
74
74
 
75
- @pytest.mark.workflow_ui
75
+ @pytest.mark.workflow
76
76
  @pytest.mark.ui
77
77
  def test_edit_workflow_form_pre_populated_data(page, test_workflow):
78
78
  """Test that form fields are pre-populated with existing workflow data."""
@@ -90,7 +90,7 @@ def test_edit_workflow_form_pre_populated_data(page, test_workflow):
90
90
  edit_page.should_have_yaml_editor_with_content(test_workflow.yaml_config)
91
91
 
92
92
 
93
- @pytest.mark.workflow_ui
93
+ @pytest.mark.workflow
94
94
  @pytest.mark.ui
95
95
  def test_edit_workflow_form_interactions(page, test_workflow):
96
96
  """Test form field interactions and input validation."""
@@ -121,7 +121,7 @@ def test_edit_workflow_form_interactions(page, test_workflow):
121
121
  edit_page.should_have_shared_switch_checked()
122
122
 
123
123
 
124
- @pytest.mark.workflow_ui
124
+ @pytest.mark.workflow
125
125
  @pytest.mark.ui
126
126
  def test_edit_workflow_dropdowns_interaction(page, test_workflow):
127
127
  """Test dropdown interactions for project."""
@@ -136,7 +136,7 @@ def test_edit_workflow_dropdowns_interaction(page, test_workflow):
136
136
  edit_page.should_see_project_selected(os.getenv("PROJECT_NAME"))
137
137
 
138
138
 
139
- @pytest.mark.workflow_ui
139
+ @pytest.mark.workflow
140
140
  @pytest.mark.ui
141
141
  def test_edit_workflow_yaml_tabs_functionality(page, test_workflow):
142
142
  """Test YAML configuration tabs functionality."""
@@ -158,7 +158,7 @@ def test_edit_workflow_yaml_tabs_functionality(page, test_workflow):
158
158
  edit_page.should_have_current_version_tab_active()
159
159
 
160
160
 
161
- @pytest.mark.workflow_ui
161
+ @pytest.mark.workflow
162
162
  @pytest.mark.ui
163
163
  def test_edit_workflow_yaml_editor_functionality(page, test_workflow):
164
164
  """Test YAML editor functionality."""
@@ -177,7 +177,7 @@ def test_edit_workflow_yaml_editor_functionality(page, test_workflow):
177
177
  edit_page.should_have_yaml_editor_with_content(new_yaml_config)
178
178
 
179
179
 
180
- @pytest.mark.workflow_ui
180
+ @pytest.mark.workflow
181
181
  @pytest.mark.ui
182
182
  def test_edit_workflow_visualization_section(page, test_workflow):
183
183
  """Test workflow visualization section functionality."""
@@ -195,7 +195,7 @@ def test_edit_workflow_visualization_section(page, test_workflow):
195
195
 
196
196
 
197
197
  @pytest.mark.skip(reason="Need to rewrite whole case")
198
- @pytest.mark.workflow_ui
198
+ @pytest.mark.workflow
199
199
  @pytest.mark.ui
200
200
  def test_edit_workflow_navigation_buttons(page, test_workflow):
201
201
  """Test navigation button interactions."""
@@ -213,7 +213,7 @@ def test_edit_workflow_navigation_buttons(page, test_workflow):
213
213
  edit_page.should_have_url_containing("#/workflows/my")
214
214
 
215
215
 
216
- @pytest.mark.workflow_ui
216
+ @pytest.mark.workflow
217
217
  @pytest.mark.ui
218
218
  def test_edit_workflow_sidebar_functionality(page, test_workflow):
219
219
  """Test sidebar functionality from Edit Workflow page."""
@@ -235,7 +235,7 @@ def test_edit_workflow_sidebar_functionality(page, test_workflow):
235
235
  edit_page.should_have_url_containing("#/workflows/all")
236
236
 
237
237
 
238
- @pytest.mark.workflow_ui
238
+ @pytest.mark.workflow
239
239
  @pytest.mark.ui
240
240
  def test_edit_workflow_menu_navigation(page, test_workflow):
241
241
  """Test menu navigation from Edit Workflow page."""
@@ -257,7 +257,7 @@ def test_edit_workflow_menu_navigation(page, test_workflow):
257
257
  edit_page.should_have_url_containing("#/workflows/my")
258
258
 
259
259
 
260
- @pytest.mark.workflow_ui
260
+ @pytest.mark.workflow
261
261
  @pytest.mark.ui
262
262
  def test_edit_workflow_data_persistence_across_tabs(page, test_workflow):
263
263
  """Test that form data persists when switching between tabs."""
@@ -275,7 +275,7 @@ def test_edit_workflow_data_persistence_across_tabs(page, test_workflow):
275
275
  edit_page.should_preserve_form_data_after_tab_switch(test_name, test_description)
276
276
 
277
277
 
278
- @pytest.mark.workflow_ui
278
+ @pytest.mark.workflow
279
279
  @pytest.mark.ui
280
280
  def test_edit_workflow_button_states(page, test_workflow):
281
281
  """Test update button enabled/disabled states."""
@@ -294,7 +294,7 @@ def test_edit_workflow_button_states(page, test_workflow):
294
294
  edit_page.should_have_update_button_enabled()
295
295
 
296
296
 
297
- @pytest.mark.workflow_ui
297
+ @pytest.mark.workflow
298
298
  @pytest.mark.ui
299
299
  def test_edit_workflow_form_validation(page, test_workflow):
300
300
  """Test form validation scenarios."""
@@ -308,7 +308,7 @@ def test_edit_workflow_form_validation(page, test_workflow):
308
308
  edit_page.should_show_validation_error_for_icon_url("Icon URL must be a valid URL")
309
309
 
310
310
 
311
- @pytest.mark.workflow_ui
311
+ @pytest.mark.workflow
312
312
  @pytest.mark.ui
313
313
  def test_edit_workflow_complete_update(page, test_workflow):
314
314
  """Test complete workflow update using the update_workflow method."""
@@ -344,7 +344,7 @@ def test_edit_workflow_complete_update(page, test_workflow):
344
344
  edit_page.should_have_yaml_editor_with_content(test_workflow.yaml_config)
345
345
 
346
346
 
347
- @pytest.mark.workflow_ui
347
+ @pytest.mark.workflow
348
348
  @pytest.mark.ui
349
349
  def test_edit_workflow_history_tab_functionality(page, test_workflow):
350
350
  """Test the complete history tab functionality: edit YAML, save, return to edit, click history, restore from history, check restoration."""
@@ -60,7 +60,7 @@ def test_workflow(workflow_utils, default_llm):
60
60
  workflow_utils.delete_workflow(created_workflow)
61
61
 
62
62
 
63
- @pytest.mark.workflow_ui
63
+ @pytest.mark.workflow
64
64
  @pytest.mark.ui
65
65
  def test_workflow_details_page_elements_visibility(page, test_workflow):
66
66
  """Test that all main elements are visible on Workflow Details page."""
@@ -91,7 +91,7 @@ def test_workflow_details_page_elements_visibility(page, test_workflow):
91
91
  workflow_details_page.sidebar.should_be_visible()
92
92
 
93
93
 
94
- @pytest.mark.workflow_ui
94
+ @pytest.mark.workflow
95
95
  @pytest.mark.ui
96
96
  def test_workflow_details_executions_table(page, test_workflow):
97
97
  """Test executions table functionality and content."""
@@ -116,7 +116,7 @@ def test_workflow_details_executions_table(page, test_workflow):
116
116
  workflow_details_page.should_have_execution_actions_working()
117
117
 
118
118
 
119
- @pytest.mark.workflow_ui
119
+ @pytest.mark.workflow
120
120
  @pytest.mark.ui
121
121
  def test_workflow_details_execution_row_interactions(page, test_workflow):
122
122
  """Test individual execution row interactions."""
@@ -141,7 +141,7 @@ def test_workflow_details_execution_row_interactions(page, test_workflow):
141
141
  first_row.should_have_view_button_enabled()
142
142
 
143
143
 
144
- @pytest.mark.workflow_ui
144
+ @pytest.mark.workflow
145
145
  @pytest.mark.ui
146
146
  def test_workflow_details_tab_switching(page, test_workflow):
147
147
  """Test tab switching functionality."""
@@ -164,9 +164,9 @@ def test_workflow_details_tab_switching(page, test_workflow):
164
164
  workflow_details_page.should_preserve_tab_state_after_navigation()
165
165
 
166
166
 
167
- @pytest.mark.workflow_ui
167
+ @pytest.mark.workflow
168
168
  @pytest.mark.ui
169
- @pytest.mark.TODO
169
+ @pytest.mark.todo
170
170
  def test_workflow_details_pagination_functionality(page, test_workflow):
171
171
  """Test pagination controls functionality."""
172
172
  workflow_details_page = WorkflowDetailsPage(page)
@@ -182,7 +182,7 @@ def test_workflow_details_pagination_functionality(page, test_workflow):
182
182
  # In a real scenario, you might select different page sizes
183
183
 
184
184
 
185
- @pytest.mark.workflow_ui
185
+ @pytest.mark.workflow
186
186
  @pytest.mark.ui
187
187
  def test_workflow_details_action_buttons(page, test_workflow):
188
188
  """Test workflow action buttons functionality."""
@@ -211,7 +211,7 @@ def test_workflow_details_action_buttons(page, test_workflow):
211
211
 
212
212
 
213
213
  @pytest.mark.skip(reason="Need to rewrite whole case")
214
- @pytest.mark.workflow_ui
214
+ @pytest.mark.workflow
215
215
  @pytest.mark.ui
216
216
  def test_workflow_details_navigation_buttons(page, test_workflow):
217
217
  """Test navigation button interactions."""
@@ -224,7 +224,7 @@ def test_workflow_details_navigation_buttons(page, test_workflow):
224
224
  workflow_details_page.should_have_url_containing("#/assistants")
225
225
 
226
226
 
227
- @pytest.mark.workflow_ui
227
+ @pytest.mark.workflow
228
228
  @pytest.mark.ui
229
229
  def test_workflow_details_sidebar_functionality(page, test_workflow):
230
230
  """Test sidebar functionality from Workflow Details page."""
@@ -244,7 +244,7 @@ def test_workflow_details_sidebar_functionality(page, test_workflow):
244
244
  workflow_details_page.should_have_url_containing("#/workflows/all")
245
245
 
246
246
 
247
- @pytest.mark.workflow_ui
247
+ @pytest.mark.workflow
248
248
  @pytest.mark.ui
249
249
  def test_workflow_details_menu_navigation(page, test_workflow):
250
250
  """Test menu navigation from Workflow Details page."""
@@ -266,7 +266,7 @@ def test_workflow_details_menu_navigation(page, test_workflow):
266
266
  workflow_details_page.should_have_url_containing("#/workflows")
267
267
 
268
268
 
269
- @pytest.mark.workflow_ui
269
+ @pytest.mark.workflow
270
270
  @pytest.mark.ui
271
271
  def test_workflow_details_execution_status_verification(page, test_workflow):
272
272
  """Test execution status display and verification."""
@@ -287,9 +287,9 @@ def test_workflow_details_execution_status_verification(page, test_workflow):
287
287
  first_row.should_have_updated_time_pattern(r"\d{2}/\d{2}/\d{4}, \d{2}:\d{2}")
288
288
 
289
289
 
290
- @pytest.mark.workflow_ui
290
+ @pytest.mark.workflow
291
291
  @pytest.mark.ui
292
- @pytest.mark.TODO
292
+ @pytest.mark.todo
293
293
  def test_workflow_details_execution_actions(page, test_workflow):
294
294
  """Test execution row action buttons."""
295
295
  workflow_details_page = WorkflowDetailsPage(page)
@@ -310,7 +310,7 @@ def test_workflow_details_execution_actions(page, test_workflow):
310
310
  # This would depend on the actual implementation
311
311
 
312
312
 
313
- @pytest.mark.workflow_ui
313
+ @pytest.mark.workflow
314
314
  @pytest.mark.ui
315
315
  def test_workflow_details_multiple_executions(page, test_workflow):
316
316
  """Test handling of multiple executions in the table."""
@@ -333,7 +333,7 @@ def test_workflow_details_multiple_executions(page, test_workflow):
333
333
  # ==================== CONFIGURATION TAB TESTS ====================
334
334
 
335
335
 
336
- @pytest.mark.workflow_ui
336
+ @pytest.mark.workflow
337
337
  @pytest.mark.ui
338
338
  def test_configuration_tab_visibility(page, test_workflow):
339
339
  """Test that all configuration tab elements are visible and properly structured."""
@@ -350,7 +350,7 @@ def test_configuration_tab_visibility(page, test_workflow):
350
350
  )
351
351
 
352
352
 
353
- @pytest.mark.workflow_ui
353
+ @pytest.mark.workflow
354
354
  @pytest.mark.ui
355
355
  def test_configuration_tab_content(page, test_workflow):
356
356
  """Test configuration tab content and values."""
@@ -373,7 +373,7 @@ def test_configuration_tab_content(page, test_workflow):
373
373
  workflow_details_page.should_have_workflow_details_link_value(test_workflow.id)
374
374
 
375
375
 
376
- @pytest.mark.workflow_ui
376
+ @pytest.mark.workflow
377
377
  @pytest.mark.ui
378
378
  def test_configuration_yaml_display(page, test_workflow):
379
379
  """Test YAML configuration display and content."""
@@ -387,7 +387,7 @@ def test_configuration_yaml_display(page, test_workflow):
387
387
  workflow_details_page.should_have_yaml_configuration(test_workflow.yaml_config)
388
388
 
389
389
 
390
- @pytest.mark.workflow_ui
390
+ @pytest.mark.workflow
391
391
  @pytest.mark.ui
392
392
  def test_configuration_code_block_features(page, test_workflow):
393
393
  """Test code block features like copy and download buttons."""
@@ -410,7 +410,7 @@ def test_configuration_code_block_features(page, test_workflow):
410
410
  # Note: Actual download verification would require checking downloads
411
411
 
412
412
 
413
- @pytest.mark.workflow_ui
413
+ @pytest.mark.workflow
414
414
  @pytest.mark.ui
415
415
  def test_configuration_copy_buttons(page, test_workflow):
416
416
  """Test copy functionality for workflow ID and details link."""