codemie-test-harness 0.1.177__py3-none-any.whl → 0.1.178__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of codemie-test-harness might be problematic. Click here for more details.
- codemie_test_harness/tests/test_data/google_datasource_test_data.py +4 -1
- codemie_test_harness/tests/ui/_test_data/datasource_test_data.py +125 -0
- codemie_test_harness/tests/ui/datasource/__init__.py +0 -0
- codemie_test_harness/tests/ui/datasource/test_create_datasource.py +188 -0
- codemie_test_harness/tests/ui/datasource/test_datasource_page.py +61 -0
- codemie_test_harness/tests/ui/datasource/test_edit_datasource.py +180 -0
- codemie_test_harness/tests/ui/datasource/test_view_datasource.py +220 -0
- codemie_test_harness/tests/ui/pageobject/assistants/assistants_page.py +1 -1
- codemie_test_harness/tests/ui/pageobject/base_page.py +31 -5
- codemie_test_harness/tests/ui/pageobject/components/project_selector.py +116 -0
- codemie_test_harness/tests/ui/pageobject/components/workflow_sidebar.py +1 -1
- codemie_test_harness/tests/ui/pageobject/datasources/__init__.py +0 -0
- codemie_test_harness/tests/ui/pageobject/datasources/create_edit_datasource_page.py +771 -0
- codemie_test_harness/tests/ui/pageobject/datasources/datasource_page.py +233 -0
- codemie_test_harness/tests/ui/pageobject/datasources/datasource_sidebar.py +303 -0
- codemie_test_harness/tests/ui/pageobject/datasources/view_datasource_page.py +335 -0
- codemie_test_harness/tests/utils/datasource_utils.py +13 -18
- {codemie_test_harness-0.1.177.dist-info → codemie_test_harness-0.1.178.dist-info}/METADATA +2 -2
- {codemie_test_harness-0.1.177.dist-info → codemie_test_harness-0.1.178.dist-info}/RECORD +21 -10
- codemie_test_harness/tests/ui/pytest.ini +0 -18
- {codemie_test_harness-0.1.177.dist-info → codemie_test_harness-0.1.178.dist-info}/WHEEL +0 -0
- {codemie_test_harness-0.1.177.dist-info → codemie_test_harness-0.1.178.dist-info}/entry_points.txt +0 -0
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"""Test data constants for Google Datasource tests"""
|
|
2
2
|
|
|
3
|
-
GOOGLE_DOC_URL = "https://docs.google.com/document/d/19EXgnFCgJontz0ToCAH6zMGwBTdhi5X97P9JIby4wHs/edit#heading=h.b01c2ig0adfg"
|
|
3
|
+
GOOGLE_DOC_URL = "https://docs.google.com/document/d/19EXgnFCgJontz0ToCAH6zMGwBTdhi5X97P9JIby4wHs/edit?tab=t.0#heading=h.b01c2ig0adfg"
|
|
4
|
+
GOOGLE_GUIDE_URL = (
|
|
5
|
+
"https://docs.google.com/document/d/1ZNWwxN8ukpJZyTbYjWQPym3Bc1-bQvBxBpTL0yfVF-w"
|
|
6
|
+
)
|
|
4
7
|
|
|
5
8
|
USER_PROMPT = 'Tell context of the What is "Platform A"? section?'
|
|
6
9
|
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Test Data for Data Source UI – used for parametrized testing and test validation
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from enum import Enum
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# ==================== ENUMS ====================
|
|
9
|
+
class DataSourceFilterType(str, Enum):
|
|
10
|
+
CODE = "Code"
|
|
11
|
+
CONFLUENCE = "Confluence"
|
|
12
|
+
JIRA = "Jira"
|
|
13
|
+
FILE = "File"
|
|
14
|
+
GOOGLE = "Google"
|
|
15
|
+
PROVIDER = "Provider"
|
|
16
|
+
|
|
17
|
+
def __str__(self):
|
|
18
|
+
return self.value
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class DataSourceType(str, Enum):
|
|
22
|
+
GIT = "Git"
|
|
23
|
+
CONFLUENCE = "Confluence"
|
|
24
|
+
JIRA = "Jira"
|
|
25
|
+
FILE = "File"
|
|
26
|
+
GOOGLE = "Google"
|
|
27
|
+
|
|
28
|
+
def __str__(self):
|
|
29
|
+
return self.value
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class DataSourceFilterStatus(str, Enum):
|
|
33
|
+
COMPLETED = "Completed"
|
|
34
|
+
FAILED = "Failed"
|
|
35
|
+
IN_PROGRESS = "In Progress"
|
|
36
|
+
|
|
37
|
+
def __str__(self):
|
|
38
|
+
return self.value
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class DataSourceStatus(str, Enum):
|
|
42
|
+
COMPLETED = "Completed"
|
|
43
|
+
ERROR = "Error"
|
|
44
|
+
FETCHING = "Fetching"
|
|
45
|
+
|
|
46
|
+
def __str__(self):
|
|
47
|
+
return self.value
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class SummarizationMethod(str, Enum):
|
|
51
|
+
WHOLE_CODEBASE = "Whole Codebase"
|
|
52
|
+
PER_FILE = "Summarization per file"
|
|
53
|
+
PER_CHUNKS = "Summarization per chunks"
|
|
54
|
+
|
|
55
|
+
def __str__(self):
|
|
56
|
+
return self.value
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class EmbeddingModel(str, Enum):
|
|
60
|
+
ADA = "Text Embedding Ada"
|
|
61
|
+
GECKO = "Text Embedding Gecko"
|
|
62
|
+
TITAN_V2 = "Titan Embed Text v2.0"
|
|
63
|
+
|
|
64
|
+
def __str__(self):
|
|
65
|
+
return self.value
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class DataSourceColumnName(str, Enum):
|
|
69
|
+
NAME = "Name"
|
|
70
|
+
PROJECT = "Project"
|
|
71
|
+
TYPE = "Type"
|
|
72
|
+
CREATED_BY = "Created By"
|
|
73
|
+
CREATED = "Created"
|
|
74
|
+
UPDATED = "Updated"
|
|
75
|
+
SHARED = "Shared"
|
|
76
|
+
STATUS = "Status"
|
|
77
|
+
ACTIONS = "Actions"
|
|
78
|
+
|
|
79
|
+
def __str__(self):
|
|
80
|
+
return self.value
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
# ==================== CONSTANTS ====================
|
|
84
|
+
|
|
85
|
+
DATA_SOURCE_FILTER_TYPES_LIST = [t for t in DataSourceFilterType]
|
|
86
|
+
DATA_SOURCE_TYPES_LIST = [t for t in DataSourceType]
|
|
87
|
+
DATA_SOURCE_FILTER_STATUSES_LIST = [s for s in DataSourceFilterStatus]
|
|
88
|
+
DATA_SOURCE_STATUSES_LIST = [s for s in DataSourceStatus]
|
|
89
|
+
DATAS_SOURCE_COLUMN_LIST = [c for c in DataSourceColumnName]
|
|
90
|
+
SUMMARIZATION_METHODS_LIST = [m for m in SummarizationMethod]
|
|
91
|
+
EMBEDDING_MODELS_LIST = [m for m in EmbeddingModel]
|
|
92
|
+
|
|
93
|
+
PROJECT_LABEL = "Project"
|
|
94
|
+
STATUS_LABEL = "Status"
|
|
95
|
+
|
|
96
|
+
MAIN_TITLE_DATASOURCE = "Data Sources"
|
|
97
|
+
MAIN_SUBTITLE_DATASOURCE = "Connect and manage your data sources in one place"
|
|
98
|
+
TITLE_CREATE_DATASOURCE = "New DataSource"
|
|
99
|
+
SUBTITLE_CREATE_DATASOURCE = "Start indexing your data source"
|
|
100
|
+
TITLE_VIEW_DATASOURCE = "View DataSource"
|
|
101
|
+
SUBTITLE_VIEW_DATASOURCE = "View your data source datails"
|
|
102
|
+
UPDATE_TITLE_DATASOURCE = "Update DataSource"
|
|
103
|
+
UPDATE_SUBTITLE_DATASOURCE = "Update your data source and start re-indexing"
|
|
104
|
+
|
|
105
|
+
FILE_INSTRUCTIONS = (
|
|
106
|
+
"Max size: 100Mb. Formats: .yml, .yaml, .json, .pptx, .csv, .txt, "
|
|
107
|
+
".pdf, .docx, .xlsx, .xml"
|
|
108
|
+
)
|
|
109
|
+
GOOGLE_INSTRUCTIONS = (
|
|
110
|
+
"Please ensure your Google document is properly formatted and shared with the"
|
|
111
|
+
" service account. For detailed instructions, refer to the Guide"
|
|
112
|
+
)
|
|
113
|
+
GOOGLE_EXAMPLE = "Google documents must follow a specific format for LLM routing: View Format Example"
|
|
114
|
+
|
|
115
|
+
EMPTY_NAME_ERROR = "Data source name is required"
|
|
116
|
+
EMPTY_DESCRIPTION_ERROR = "description is a required field"
|
|
117
|
+
EMPTY_REPO_LINK_ERROR = "Repo Link is required"
|
|
118
|
+
EMPTY_BRANCH_ERROR = "Branch is required"
|
|
119
|
+
EMPTY_CQL_ERROR = "cql is a required field"
|
|
120
|
+
EMPTY_JQL_ERROR = "jql is a required field"
|
|
121
|
+
EMPTY_FILE_ERROR = (
|
|
122
|
+
"Invalid file type found, only .yml, .yaml, .json, .pptx, .csv, .txt, .pdf, "
|
|
123
|
+
".docx, .xlsx, .xml are allowed"
|
|
124
|
+
)
|
|
125
|
+
EMPTY_GOOGLE_LINK_ERROR = "Google Docs link is required"
|
|
File without changes
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from tests import CredentialsManager, PROJECT, TEST_USER
|
|
3
|
+
from tests.test_data.google_datasource_test_data import GOOGLE_DOC_URL
|
|
4
|
+
from tests.ui._test_data.datasource_test_data import (
|
|
5
|
+
DataSourceType,
|
|
6
|
+
DataSourceFilterType,
|
|
7
|
+
DataSourceStatus,
|
|
8
|
+
)
|
|
9
|
+
from tests.ui._test_data.datasource_test_data import (
|
|
10
|
+
TITLE_CREATE_DATASOURCE,
|
|
11
|
+
SUBTITLE_CREATE_DATASOURCE,
|
|
12
|
+
)
|
|
13
|
+
from tests.ui.pageobject.datasources.create_edit_datasource_page import (
|
|
14
|
+
CreateEditDatasourcePage,
|
|
15
|
+
)
|
|
16
|
+
from tests.ui.pageobject.datasources.datasource_page import DataSourcePage
|
|
17
|
+
from tests.utils.constants import FILES_PATH
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@pytest.mark.datasource_ui
|
|
21
|
+
@pytest.mark.ui
|
|
22
|
+
def test_open_create_datasource_page_and_elements(page):
|
|
23
|
+
"""Open Create Datasource page and verify critical elements."""
|
|
24
|
+
create_page = CreateEditDatasourcePage(page)
|
|
25
|
+
|
|
26
|
+
create_page.navigate_to()
|
|
27
|
+
create_page.sidebar.should_see_title_subtitle(
|
|
28
|
+
TITLE_CREATE_DATASOURCE, SUBTITLE_CREATE_DATASOURCE
|
|
29
|
+
)
|
|
30
|
+
create_page.should_see_main_fields()
|
|
31
|
+
|
|
32
|
+
create_page.select_datasource_type(DataSourceType.GIT)
|
|
33
|
+
create_page.should_see_git_fields()
|
|
34
|
+
|
|
35
|
+
create_page.select_datasource_type(DataSourceFilterType.CONFLUENCE)
|
|
36
|
+
create_page.should_see_confluence_cql_field()
|
|
37
|
+
create_page.should_see_integration_input_or_button()
|
|
38
|
+
|
|
39
|
+
create_page.select_datasource_type(DataSourceFilterType.JIRA)
|
|
40
|
+
create_page.should_see_jira_jql_field()
|
|
41
|
+
create_page.should_see_integration_input_or_button()
|
|
42
|
+
|
|
43
|
+
create_page.select_datasource_type(DataSourceFilterType.FILE)
|
|
44
|
+
create_page.should_see_file_fields()
|
|
45
|
+
create_page.select_datasource_type(DataSourceFilterType.GOOGLE)
|
|
46
|
+
create_page.should_see_google_fields()
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@pytest.mark.datasource_ui
|
|
50
|
+
@pytest.mark.ui
|
|
51
|
+
def test_datasource_creation_validation(page):
|
|
52
|
+
"""Test create datasource without data and observing errors."""
|
|
53
|
+
create_page = CreateEditDatasourcePage(page)
|
|
54
|
+
|
|
55
|
+
create_page.navigate_to()
|
|
56
|
+
create_page.select_datasource_type(DataSourceType.GIT).click_create()
|
|
57
|
+
create_page.should_see_error_for_empty_main_fields()
|
|
58
|
+
create_page.should_see_error_for_empty_git_fields()
|
|
59
|
+
|
|
60
|
+
create_page.select_datasource_type(DataSourceFilterType.CONFLUENCE).click_create()
|
|
61
|
+
create_page.should_see_error_for_empty_main_fields()
|
|
62
|
+
create_page.should_see_error_for_empty_confluence_fields()
|
|
63
|
+
|
|
64
|
+
create_page.select_datasource_type(DataSourceFilterType.JIRA).click_create()
|
|
65
|
+
create_page.should_see_error_for_empty_main_fields()
|
|
66
|
+
create_page.should_see_error_for_empty_jira_fields()
|
|
67
|
+
|
|
68
|
+
create_page.select_datasource_type(DataSourceFilterType.FILE).click_create()
|
|
69
|
+
create_page.should_see_error_for_empty_main_fields()
|
|
70
|
+
create_page.should_see_error_for_empty_file_fields()
|
|
71
|
+
|
|
72
|
+
create_page.select_datasource_type(DataSourceFilterType.GOOGLE).click_create()
|
|
73
|
+
create_page.should_see_error_for_empty_main_fields()
|
|
74
|
+
create_page.should_see_error_for_empty_google_fields()
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
@pytest.mark.datasource_ui
|
|
78
|
+
@pytest.mark.ui
|
|
79
|
+
def test_create_git_datasource(page, git_integration):
|
|
80
|
+
"""Test creating a new datasource with all required fields."""
|
|
81
|
+
datasource_page = DataSourcePage(page)
|
|
82
|
+
create_page = CreateEditDatasourcePage(page)
|
|
83
|
+
|
|
84
|
+
create_page.navigate_to()
|
|
85
|
+
datasource = create_page.create_git_datasource(
|
|
86
|
+
project_name=PROJECT,
|
|
87
|
+
repo_link=CredentialsManager.get_parameter("GITLAB_PROJECT"),
|
|
88
|
+
branch="main",
|
|
89
|
+
integration=git_integration.alias,
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
datasource_page.should_see_table_row_with_values(
|
|
93
|
+
name=datasource,
|
|
94
|
+
status=DataSourceStatus.COMPLETED,
|
|
95
|
+
project=PROJECT,
|
|
96
|
+
type_=DataSourceFilterType.CODE,
|
|
97
|
+
created_by=TEST_USER,
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
@pytest.mark.datasource_ui
|
|
102
|
+
@pytest.mark.ui
|
|
103
|
+
def test_create_confluence_datasource(page, confluence_integration):
|
|
104
|
+
"""Test creating a new datasource with all required fields."""
|
|
105
|
+
datasource_page = DataSourcePage(page)
|
|
106
|
+
create_page = CreateEditDatasourcePage(page)
|
|
107
|
+
|
|
108
|
+
create_page.navigate_to()
|
|
109
|
+
datasource = create_page.create_confluence_datasource(
|
|
110
|
+
project_name=PROJECT,
|
|
111
|
+
cql_query=CredentialsManager.confluence_cql(),
|
|
112
|
+
integration=confluence_integration.alias,
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
datasource_page.should_see_table_row_with_values(
|
|
116
|
+
name=datasource,
|
|
117
|
+
status=DataSourceStatus.COMPLETED,
|
|
118
|
+
project=PROJECT,
|
|
119
|
+
type_=DataSourceFilterType.CONFLUENCE,
|
|
120
|
+
created_by=TEST_USER,
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
@pytest.mark.datasource_ui
|
|
125
|
+
@pytest.mark.ui
|
|
126
|
+
def test_create_jira_datasource(page, jira_integration):
|
|
127
|
+
"""Test creating a new datasource with all required fields."""
|
|
128
|
+
datasource_page = DataSourcePage(page)
|
|
129
|
+
create_page = CreateEditDatasourcePage(page)
|
|
130
|
+
|
|
131
|
+
create_page.navigate_to()
|
|
132
|
+
datasource = create_page.create_jira_datasource(
|
|
133
|
+
project_name=PROJECT,
|
|
134
|
+
jql_query=CredentialsManager.jira_jql(),
|
|
135
|
+
integration=jira_integration.alias,
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
datasource_page.should_see_table_row_with_values(
|
|
139
|
+
name=datasource,
|
|
140
|
+
status=DataSourceStatus.COMPLETED,
|
|
141
|
+
project=PROJECT,
|
|
142
|
+
type_=DataSourceFilterType.JIRA,
|
|
143
|
+
created_by=TEST_USER,
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
@pytest.mark.datasource_ui
|
|
148
|
+
@pytest.mark.ui
|
|
149
|
+
def test_create_file_datasource(page):
|
|
150
|
+
"""Test creating a new datasource with all required fields."""
|
|
151
|
+
datasource_page = DataSourcePage(page)
|
|
152
|
+
create_page = CreateEditDatasourcePage(page)
|
|
153
|
+
|
|
154
|
+
create_page.navigate_to()
|
|
155
|
+
datasource = create_page.create_file_datasource(
|
|
156
|
+
project_name=PROJECT,
|
|
157
|
+
file_path=[str(FILES_PATH / "test.txt")],
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
datasource_page.should_see_table_row_with_values(
|
|
161
|
+
name=datasource,
|
|
162
|
+
status=DataSourceStatus.COMPLETED,
|
|
163
|
+
project=PROJECT,
|
|
164
|
+
type_=DataSourceFilterType.FILE,
|
|
165
|
+
created_by=TEST_USER,
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
@pytest.mark.datasource_ui
|
|
170
|
+
@pytest.mark.ui
|
|
171
|
+
def test_create_google_datasource(page):
|
|
172
|
+
"""Test creating a new datasource with all required fields."""
|
|
173
|
+
datasource_page = DataSourcePage(page)
|
|
174
|
+
create_page = CreateEditDatasourcePage(page)
|
|
175
|
+
|
|
176
|
+
create_page.navigate_to()
|
|
177
|
+
datasource = create_page.create_google_datasource(
|
|
178
|
+
project_name=PROJECT,
|
|
179
|
+
google_doc_link=GOOGLE_DOC_URL,
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
datasource_page.should_see_table_row_with_values(
|
|
183
|
+
name=datasource,
|
|
184
|
+
status=DataSourceStatus.COMPLETED,
|
|
185
|
+
project=PROJECT,
|
|
186
|
+
type_=DataSourceFilterType.GOOGLE,
|
|
187
|
+
created_by=TEST_USER,
|
|
188
|
+
)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
3
|
+
from codemie_test_harness.tests.ui.pageobject.datasources.datasource_page import (
|
|
4
|
+
DataSourcePage,
|
|
5
|
+
)
|
|
6
|
+
from codemie_test_harness.tests.utils.base_utils import get_random_name
|
|
7
|
+
from tests import TEST_USER
|
|
8
|
+
from tests.ui._test_data.datasource_test_data import (
|
|
9
|
+
MAIN_TITLE_DATASOURCE,
|
|
10
|
+
MAIN_SUBTITLE_DATASOURCE,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@pytest.mark.datasource_ui
|
|
15
|
+
@pytest.mark.ui
|
|
16
|
+
def test_datasource_sidebar_interaction(page):
|
|
17
|
+
"""Test sidebar filters interactions."""
|
|
18
|
+
search_input = get_random_name()
|
|
19
|
+
datasource_page = DataSourcePage(page)
|
|
20
|
+
|
|
21
|
+
datasource_page.navigate_to()
|
|
22
|
+
datasource_page.sidebar.should_see_title_subtitle(
|
|
23
|
+
MAIN_TITLE_DATASOURCE, MAIN_SUBTITLE_DATASOURCE
|
|
24
|
+
)
|
|
25
|
+
datasource_page.sidebar.input_data_search(search_input).should_see_search_input(
|
|
26
|
+
search_input
|
|
27
|
+
)
|
|
28
|
+
datasource_page.sidebar.should_see_selected_checkboxes()
|
|
29
|
+
datasource_page.sidebar.toggle_created_by_me().should_see_created_by_me_value(
|
|
30
|
+
TEST_USER
|
|
31
|
+
)
|
|
32
|
+
datasource_page.sidebar.should_see_project_filter()
|
|
33
|
+
datasource_page.sidebar.should_see_status_dropdown()
|
|
34
|
+
datasource_page.sidebar.should_select_status_dropdown()
|
|
35
|
+
datasource_page.sidebar.click_clear_all_button().should_see_cleared_filters()
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@pytest.mark.datasource_ui
|
|
39
|
+
@pytest.mark.ui
|
|
40
|
+
def test_datasource_sidebar_hiding_elements(page):
|
|
41
|
+
"""Test sidebar filters hiding."""
|
|
42
|
+
datasource_page = DataSourcePage(page)
|
|
43
|
+
|
|
44
|
+
datasource_page.navigate_to()
|
|
45
|
+
datasource_page.sidebar.click_type_filter_hide_button().should_not_see_type_filters()
|
|
46
|
+
datasource_page.sidebar.click_project_filter_hide_button().should_not_see_project_filters()
|
|
47
|
+
datasource_page.sidebar.click_created_by_filter_hide_button().should_not_see_created_by_filters()
|
|
48
|
+
datasource_page.sidebar.click_status_filter_hide_button().should_not_see_status_filters()
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@pytest.mark.datasource_ui
|
|
52
|
+
@pytest.mark.ui
|
|
53
|
+
def test_datasource_page_elements_visibility(page):
|
|
54
|
+
"""Test DataSource index page and sidebar elements are visible."""
|
|
55
|
+
datasource_page = DataSourcePage(page)
|
|
56
|
+
|
|
57
|
+
datasource_page.navigate_to()
|
|
58
|
+
datasource_page.should_see_create_datasource_button()
|
|
59
|
+
datasource_page.should_see_table_rows(minimum_count=10)
|
|
60
|
+
datasource_page.should_see_table_column_names()
|
|
61
|
+
datasource_page.should_see_pagination()
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from tests import PROJECT, TEST_USER
|
|
3
|
+
from tests.test_data.google_datasource_test_data import GOOGLE_DOC_URL
|
|
4
|
+
from tests.ui._test_data.datasource_test_data import (
|
|
5
|
+
DataSourceStatus,
|
|
6
|
+
DataSourceFilterType,
|
|
7
|
+
UPDATE_SUBTITLE_DATASOURCE,
|
|
8
|
+
UPDATE_TITLE_DATASOURCE,
|
|
9
|
+
)
|
|
10
|
+
from tests.ui.pageobject.datasources.create_edit_datasource_page import (
|
|
11
|
+
CreateEditDatasourcePage,
|
|
12
|
+
)
|
|
13
|
+
from tests.ui.pageobject.datasources.datasource_page import DataSourcePage
|
|
14
|
+
from tests.utils.constants import FILES_PATH
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.datasource_ui
|
|
18
|
+
@pytest.mark.ui
|
|
19
|
+
def test_edit_git_datasource(
|
|
20
|
+
page, datasource_utils, git_integration, default_embedding_llm
|
|
21
|
+
):
|
|
22
|
+
"""Test that all main Edit Datasource page elements are visible."""
|
|
23
|
+
datasource_page = DataSourcePage(page)
|
|
24
|
+
edit_page = CreateEditDatasourcePage(page)
|
|
25
|
+
|
|
26
|
+
datasource = datasource_utils.create_gitlab_datasource(
|
|
27
|
+
setting_id=git_integration.id,
|
|
28
|
+
embeddings_model=default_embedding_llm.base_name,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
datasource_page.navigate_to()
|
|
32
|
+
datasource_page.should_see_table_row_with_values(
|
|
33
|
+
name=datasource.name,
|
|
34
|
+
status=DataSourceStatus.COMPLETED,
|
|
35
|
+
project=PROJECT,
|
|
36
|
+
type_=DataSourceFilterType.CODE,
|
|
37
|
+
created_by=TEST_USER,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
datasource_page.open_row_action_menu(datasource.name)
|
|
41
|
+
datasource_page.should_see_edit_dropdown_values()
|
|
42
|
+
datasource_page.should_see_edit_dropdown_full_reindex_value()
|
|
43
|
+
datasource_page.click_row_action("Edit")
|
|
44
|
+
|
|
45
|
+
edit_page.sidebar.should_see_title_subtitle(
|
|
46
|
+
UPDATE_TITLE_DATASOURCE, UPDATE_SUBTITLE_DATASOURCE
|
|
47
|
+
)
|
|
48
|
+
edit_page.selector.should_see_disabled_multiselect(PROJECT)
|
|
49
|
+
edit_page.should_see_disabled_name_input(datasource.name)
|
|
50
|
+
edit_page.should_see_save_reindex_button()
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
@pytest.mark.datasource_ui
|
|
54
|
+
@pytest.mark.ui
|
|
55
|
+
def test_edit_confluence_datasource(page, datasource_utils, confluence_integration):
|
|
56
|
+
"""Test that all main Edit Datasource page elements are visible."""
|
|
57
|
+
datasource_page = DataSourcePage(page)
|
|
58
|
+
edit_page = CreateEditDatasourcePage(page)
|
|
59
|
+
|
|
60
|
+
datasource = datasource_utils.create_confluence_datasource(
|
|
61
|
+
setting_id=confluence_integration.id,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
datasource_page.navigate_to()
|
|
65
|
+
datasource_page.should_see_table_row_with_values(
|
|
66
|
+
name=datasource.name,
|
|
67
|
+
status=DataSourceStatus.COMPLETED,
|
|
68
|
+
project=PROJECT,
|
|
69
|
+
type_=DataSourceFilterType.CONFLUENCE,
|
|
70
|
+
created_by=TEST_USER,
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
datasource_page.open_row_action_menu(datasource.name)
|
|
74
|
+
datasource_page.should_see_edit_dropdown_values()
|
|
75
|
+
datasource_page.should_see_edit_dropdown_full_reindex_value()
|
|
76
|
+
datasource_page.click_row_action("Edit")
|
|
77
|
+
|
|
78
|
+
edit_page.sidebar.should_see_title_subtitle(
|
|
79
|
+
UPDATE_TITLE_DATASOURCE, UPDATE_SUBTITLE_DATASOURCE
|
|
80
|
+
)
|
|
81
|
+
edit_page.selector.should_see_disabled_multiselect(PROJECT)
|
|
82
|
+
edit_page.should_see_disabled_name_input(datasource.name)
|
|
83
|
+
edit_page.should_see_save_reindex_button()
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
@pytest.mark.datasource_ui
|
|
87
|
+
@pytest.mark.ui
|
|
88
|
+
def test_edit_jira_datasource(page, datasource_utils, jira_integration):
|
|
89
|
+
"""Test that all main Edit Datasource page elements are visible."""
|
|
90
|
+
datasource_page = DataSourcePage(page)
|
|
91
|
+
edit_page = CreateEditDatasourcePage(page)
|
|
92
|
+
|
|
93
|
+
datasource = datasource_utils.create_jira_datasource(
|
|
94
|
+
setting_id=jira_integration.id,
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
datasource_page.navigate_to()
|
|
98
|
+
datasource_page.should_see_table_row_with_values(
|
|
99
|
+
name=datasource.name,
|
|
100
|
+
status=DataSourceStatus.COMPLETED,
|
|
101
|
+
project=PROJECT,
|
|
102
|
+
type_=DataSourceFilterType.JIRA,
|
|
103
|
+
created_by=TEST_USER,
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
datasource_page.open_row_action_menu(datasource.name)
|
|
107
|
+
datasource_page.should_see_edit_dropdown_values()
|
|
108
|
+
datasource_page.should_see_edit_dropdown_index_values()
|
|
109
|
+
datasource_page.click_row_action("Edit")
|
|
110
|
+
|
|
111
|
+
edit_page.sidebar.should_see_title_subtitle(
|
|
112
|
+
UPDATE_TITLE_DATASOURCE, UPDATE_SUBTITLE_DATASOURCE
|
|
113
|
+
)
|
|
114
|
+
edit_page.selector.should_see_disabled_multiselect(PROJECT)
|
|
115
|
+
edit_page.should_see_disabled_name_input(datasource.name)
|
|
116
|
+
edit_page.should_see_save_reindex_button()
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
@pytest.mark.datasource_ui
|
|
120
|
+
@pytest.mark.ui
|
|
121
|
+
def test_edit_file_datasource(page, datasource_utils):
|
|
122
|
+
"""Test that all main Edit Datasource page elements are visible."""
|
|
123
|
+
datasource_page = DataSourcePage(page)
|
|
124
|
+
edit_page = CreateEditDatasourcePage(page)
|
|
125
|
+
|
|
126
|
+
datasource = datasource_utils.create_file_datasource(
|
|
127
|
+
files=[str(FILES_PATH / "test.txt")],
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
datasource_page.navigate_to()
|
|
131
|
+
datasource_page.should_see_table_row_with_values(
|
|
132
|
+
name=datasource.name,
|
|
133
|
+
status=DataSourceStatus.COMPLETED,
|
|
134
|
+
project=PROJECT,
|
|
135
|
+
type_=DataSourceFilterType.FILE,
|
|
136
|
+
created_by=TEST_USER,
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
datasource_page.open_row_action_menu(datasource.name)
|
|
140
|
+
datasource_page.should_see_edit_dropdown_values()
|
|
141
|
+
datasource_page.click_row_action("Edit")
|
|
142
|
+
|
|
143
|
+
edit_page.sidebar.should_see_title_subtitle(
|
|
144
|
+
UPDATE_TITLE_DATASOURCE, UPDATE_SUBTITLE_DATASOURCE
|
|
145
|
+
)
|
|
146
|
+
edit_page.selector.should_see_disabled_multiselect(PROJECT)
|
|
147
|
+
edit_page.should_see_disabled_name_input(datasource.name)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
@pytest.mark.datasource_ui
|
|
151
|
+
@pytest.mark.ui
|
|
152
|
+
def test_edit_google_datasource(page, datasource_utils):
|
|
153
|
+
"""Test that all main Edit Datasource page elements are visible."""
|
|
154
|
+
datasource_page = DataSourcePage(page)
|
|
155
|
+
edit_page = CreateEditDatasourcePage(page)
|
|
156
|
+
|
|
157
|
+
datasource = datasource_utils.create_google_doc_datasource(
|
|
158
|
+
google_doc=GOOGLE_DOC_URL
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
datasource_page.navigate_to()
|
|
162
|
+
datasource_page.should_see_table_row_with_values(
|
|
163
|
+
name=datasource.name,
|
|
164
|
+
status=DataSourceStatus.COMPLETED,
|
|
165
|
+
project=PROJECT,
|
|
166
|
+
type_=DataSourceFilterType.GOOGLE,
|
|
167
|
+
created_by=TEST_USER,
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
datasource_page.open_row_action_menu(datasource.name)
|
|
171
|
+
datasource_page.should_see_edit_dropdown_values()
|
|
172
|
+
datasource_page.should_see_edit_dropdown_full_reindex_value()
|
|
173
|
+
datasource_page.click_row_action("Edit")
|
|
174
|
+
|
|
175
|
+
edit_page.sidebar.should_see_title_subtitle(
|
|
176
|
+
UPDATE_TITLE_DATASOURCE, UPDATE_SUBTITLE_DATASOURCE
|
|
177
|
+
)
|
|
178
|
+
edit_page.selector.should_see_disabled_multiselect(PROJECT)
|
|
179
|
+
edit_page.should_see_disabled_name_input(datasource.name)
|
|
180
|
+
edit_page.should_see_save_reindex_button()
|