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
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
#
|
|
2
|
+
from codemie_test_harness.tests.ui.pageobject.base_page import BasePage
|
|
3
|
+
from hamcrest import greater_than_or_equal_to, assert_that
|
|
4
|
+
from playwright.sync_api import expect
|
|
5
|
+
from reportportal_client import step
|
|
6
|
+
from tests.ui.pageobject.datasources.datasource_sidebar import DataSourceSidebar
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ViewDatasourcePage(BasePage):
|
|
10
|
+
"""
|
|
11
|
+
Page object for the 'View DataSource' details page.
|
|
12
|
+
Contains all major section locators and verification methods (with text checks).
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
def __init__(self, page):
|
|
16
|
+
self.sidebar = DataSourceSidebar(page)
|
|
17
|
+
self.page = page
|
|
18
|
+
|
|
19
|
+
# Main Page Elements
|
|
20
|
+
@property
|
|
21
|
+
def back_button(self):
|
|
22
|
+
return self.page.locator("div.h-layout-header button").first
|
|
23
|
+
|
|
24
|
+
@property
|
|
25
|
+
def main_title(self):
|
|
26
|
+
return self.page.locator("h1.text-h3.text-white.font-semibold")
|
|
27
|
+
|
|
28
|
+
# Name/Owner/Shared
|
|
29
|
+
@property
|
|
30
|
+
def datasource_name(self):
|
|
31
|
+
return self.page.locator("h4.text-2xl.font-semibold.font-mono")
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def owner_text(self):
|
|
35
|
+
return self.page.locator("div.flex.gap-4.text-xs.text-text-secondary p").first
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def shared_status(self):
|
|
39
|
+
return self.page.locator(
|
|
40
|
+
"span.text-xs.text-switch-label, span.flex.items-center.gap-1"
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
# Overview Section
|
|
44
|
+
@property
|
|
45
|
+
def overview_label(self):
|
|
46
|
+
return self.page.locator(
|
|
47
|
+
"p.text-xs.text-text-main.font-semibold", has_text="OVERVIEW"
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
def project_value(self):
|
|
52
|
+
return self.page.locator("div.gap-x-3 p:text('Project:') + p")
|
|
53
|
+
|
|
54
|
+
@property
|
|
55
|
+
def datasource_type_value(self):
|
|
56
|
+
return self.page.locator("div.gap-x-3 p:text('Data Source Type:') + p")
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def datasource_id_field(self):
|
|
60
|
+
return self.page.locator(
|
|
61
|
+
"div.flex.flex-col.gap-2.mt-2.uppercase input[readonly]"
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
# Description
|
|
65
|
+
@property
|
|
66
|
+
def description_label(self):
|
|
67
|
+
return self.page.locator("h5.font-bold.text-xs.mb-2", has_text="Description")
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def description_text(self):
|
|
71
|
+
return self.description_label.locator("xpath=../div")
|
|
72
|
+
|
|
73
|
+
# Configuration Section
|
|
74
|
+
@property
|
|
75
|
+
def configuration_label(self):
|
|
76
|
+
return self.page.locator(
|
|
77
|
+
"p.text-xs.text-text-main.font-semibold", has_text="CONFIGURATION"
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
@property
|
|
81
|
+
def embeddings_model_label(self):
|
|
82
|
+
return self.page.locator(
|
|
83
|
+
"p.text-xs.text-text-tertiary", has_text="Embeddings model:"
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
@property
|
|
87
|
+
def embeddings_model_value(self):
|
|
88
|
+
return self.embeddings_model_label.locator("+ div")
|
|
89
|
+
|
|
90
|
+
@property
|
|
91
|
+
def summarization_model_label(self):
|
|
92
|
+
return self.page.locator(
|
|
93
|
+
"p.text-xs.text-text-tertiary", has_text="Summarization model:"
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
@property
|
|
97
|
+
def summarization_model_value(self):
|
|
98
|
+
return self.summarization_model_label.locator("+ div")
|
|
99
|
+
|
|
100
|
+
# Usage Details Section
|
|
101
|
+
@property
|
|
102
|
+
def usage_label(self):
|
|
103
|
+
return self.page.locator(
|
|
104
|
+
"p.text-xs.text-text-main.font-semibold", has_text="USAGE DETAILS"
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
@property
|
|
108
|
+
def input_tokens_label(self):
|
|
109
|
+
return self.page.locator(
|
|
110
|
+
"p.text-xs.text-text-tertiary", has_text="Input tokens used:"
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
@property
|
|
114
|
+
def input_tokens_value(self):
|
|
115
|
+
return self.input_tokens_label.locator("xpath=../div")
|
|
116
|
+
|
|
117
|
+
@property
|
|
118
|
+
def output_tokens_label(self):
|
|
119
|
+
return self.page.locator(
|
|
120
|
+
"p.text-xs.text-text-tertiary", has_text="Output tokens used:"
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
@property
|
|
124
|
+
def output_tokens_value(self):
|
|
125
|
+
return self.output_tokens_label.locator("xpath=../div")
|
|
126
|
+
|
|
127
|
+
@property
|
|
128
|
+
def money_spent_label(self):
|
|
129
|
+
return self.page.locator(
|
|
130
|
+
"p.text-xs.text-text-tertiary", has_text="Money spent:"
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
@property
|
|
134
|
+
def money_spent_value(self):
|
|
135
|
+
return self.money_spent_label.locator("xpath=../div")
|
|
136
|
+
|
|
137
|
+
# Processing Summary
|
|
138
|
+
@property
|
|
139
|
+
def processing_summary_label(self):
|
|
140
|
+
return self.page.locator(
|
|
141
|
+
"h5.font-bold.text-xs.leading-none.font-mono", has_text="Processing Summary"
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
@property
|
|
145
|
+
def total_documents_label(self):
|
|
146
|
+
return self.page.locator(
|
|
147
|
+
"div.font-mono.text-ds-field-title", has_text="Total documents:"
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
@property
|
|
151
|
+
def total_documents_count(self):
|
|
152
|
+
return self.total_documents_label.locator("xpath=../span")
|
|
153
|
+
|
|
154
|
+
@property
|
|
155
|
+
def processed_documents_label(self):
|
|
156
|
+
return self.page.locator(
|
|
157
|
+
"div.font-mono.text-ds-field-title", has_text="Processed Documents Count:"
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
@property
|
|
161
|
+
def processed_documents_count(self):
|
|
162
|
+
return self.processed_documents_label.locator("xpath=../span")
|
|
163
|
+
|
|
164
|
+
@property
|
|
165
|
+
def imported_chunks_label(self):
|
|
166
|
+
return self.page.locator(
|
|
167
|
+
"div.font-mono.text-ds-field-title", has_text="Imported Chunks Count:"
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
@property
|
|
171
|
+
def imported_chunks_count(self):
|
|
172
|
+
return self.imported_chunks_label.locator("xpath=../span")
|
|
173
|
+
|
|
174
|
+
@property
|
|
175
|
+
def skipped_documents_label(self):
|
|
176
|
+
return self.page.locator(
|
|
177
|
+
"div.font-mono.text-ds-field-title", has_text="Skipped Documents:"
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
@property
|
|
181
|
+
def skipped_documents_count(self):
|
|
182
|
+
return self.skipped_documents_label.locator("xpath=../span")
|
|
183
|
+
|
|
184
|
+
@property
|
|
185
|
+
def total_size_kb_label(self):
|
|
186
|
+
return self.page.locator(
|
|
187
|
+
"div.font-mono.text-ds-field-title", has_text="Total Size KB:"
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
@property
|
|
191
|
+
def total_size_kb_count(self):
|
|
192
|
+
return self.total_size_kb_label.locator("xpath=../span")
|
|
193
|
+
|
|
194
|
+
@property
|
|
195
|
+
def average_file_size_b_label(self):
|
|
196
|
+
return self.page.locator(
|
|
197
|
+
"div.font-mono.text-ds-field-title", has_text="Average File Size B:"
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
@property
|
|
201
|
+
def average_file_size_b_count(self):
|
|
202
|
+
return self.average_file_size_b_label.locator("xpath=../span")
|
|
203
|
+
|
|
204
|
+
# Processed Data
|
|
205
|
+
@property
|
|
206
|
+
def processed_data_tab_label(self):
|
|
207
|
+
return self.page.locator("ul li a.p-menuitem-link", has_text="Processed Data")
|
|
208
|
+
|
|
209
|
+
@property
|
|
210
|
+
def processed_data_label(self):
|
|
211
|
+
return self.page.locator("h5.text-xs", has_text="Processed Data")
|
|
212
|
+
|
|
213
|
+
@property
|
|
214
|
+
def processed_data_list(self):
|
|
215
|
+
return self.page.locator("ul.bg-new-panel li")
|
|
216
|
+
|
|
217
|
+
# --- Verification Methods ---
|
|
218
|
+
|
|
219
|
+
@step
|
|
220
|
+
def should_see_title_and_back_button(self):
|
|
221
|
+
expect(self.main_title).to_have_text("Data Source Details")
|
|
222
|
+
expect(self.back_button).to_be_visible()
|
|
223
|
+
return self
|
|
224
|
+
|
|
225
|
+
@step
|
|
226
|
+
def should_see_ds_name_and_owner(
|
|
227
|
+
self, datasource_name: str = None, owner: str = None
|
|
228
|
+
):
|
|
229
|
+
expect(self.datasource_name).to_be_visible()
|
|
230
|
+
if datasource_name:
|
|
231
|
+
expect(self.datasource_name).to_have_text(datasource_name)
|
|
232
|
+
expect(self.owner_text).to_be_visible()
|
|
233
|
+
if owner:
|
|
234
|
+
expect(self.owner_text).to_have_text(f"by {owner}")
|
|
235
|
+
return self
|
|
236
|
+
|
|
237
|
+
@step
|
|
238
|
+
def should_see_overview(
|
|
239
|
+
self, project: str = None, ds_type: str = None, ds_id: str = None
|
|
240
|
+
):
|
|
241
|
+
expect(self.overview_label).to_be_visible()
|
|
242
|
+
expect(self.project_value).to_be_visible()
|
|
243
|
+
if project:
|
|
244
|
+
expect(self.project_value).to_have_text(project)
|
|
245
|
+
expect(self.datasource_type_value).to_be_visible()
|
|
246
|
+
if ds_type:
|
|
247
|
+
expect(self.datasource_type_value).to_have_text(ds_type)
|
|
248
|
+
expect(self.datasource_id_field).to_be_visible()
|
|
249
|
+
if ds_id:
|
|
250
|
+
expect(self.datasource_id_field).to_have_value(ds_id)
|
|
251
|
+
return self
|
|
252
|
+
|
|
253
|
+
@step
|
|
254
|
+
def should_see_description(self, description: str = None):
|
|
255
|
+
expect(self.description_label).to_be_visible()
|
|
256
|
+
expect(self.description_text).to_be_visible()
|
|
257
|
+
if description:
|
|
258
|
+
expect(self.description_text).to_have_text(description)
|
|
259
|
+
return self
|
|
260
|
+
|
|
261
|
+
@step
|
|
262
|
+
def should_see_configuration(
|
|
263
|
+
self, embeddings_model: str = None, summarization_model: str = None
|
|
264
|
+
):
|
|
265
|
+
expect(self.configuration_label).to_be_visible()
|
|
266
|
+
expect(self.embeddings_model_label).to_be_visible()
|
|
267
|
+
expect(self.embeddings_model_value).to_be_visible()
|
|
268
|
+
if embeddings_model:
|
|
269
|
+
expect(self.embeddings_model_value).to_have_text(embeddings_model)
|
|
270
|
+
expect(self.summarization_model_label).to_be_visible()
|
|
271
|
+
expect(self.summarization_model_value).to_be_visible()
|
|
272
|
+
if summarization_model:
|
|
273
|
+
expect(self.summarization_model_value).to_have_text(summarization_model)
|
|
274
|
+
return self
|
|
275
|
+
|
|
276
|
+
@step
|
|
277
|
+
def should_see_usage_details(self):
|
|
278
|
+
expect(self.usage_label).to_be_visible()
|
|
279
|
+
expect(self.input_tokens_label).to_be_visible()
|
|
280
|
+
expect(self.input_tokens_value).to_be_visible()
|
|
281
|
+
expect(self.output_tokens_label).to_be_visible()
|
|
282
|
+
expect(self.output_tokens_value).to_be_visible()
|
|
283
|
+
expect(self.money_spent_label).to_be_visible()
|
|
284
|
+
expect(self.money_spent_value).to_be_visible()
|
|
285
|
+
return self
|
|
286
|
+
|
|
287
|
+
@step
|
|
288
|
+
def should_see_processing_summary(
|
|
289
|
+
self,
|
|
290
|
+
total_documents: str = None,
|
|
291
|
+
processed_documents: str = None,
|
|
292
|
+
imported_chunks: str = None,
|
|
293
|
+
skipped_documents: str = None,
|
|
294
|
+
is_git: bool = False,
|
|
295
|
+
):
|
|
296
|
+
expect(self.processing_summary_label).to_be_visible()
|
|
297
|
+
expect(self.total_documents_label).to_be_visible()
|
|
298
|
+
expect(self.total_documents_count).to_be_visible()
|
|
299
|
+
if total_documents:
|
|
300
|
+
expect(self.total_documents_count).to_have_text(total_documents)
|
|
301
|
+
expect(self.processed_documents_label).to_be_visible()
|
|
302
|
+
expect(self.processed_documents_count).to_be_visible()
|
|
303
|
+
if processed_documents:
|
|
304
|
+
expect(self.processed_documents_count).to_have_text(processed_documents)
|
|
305
|
+
expect(self.imported_chunks_label).to_be_visible()
|
|
306
|
+
expect(self.imported_chunks_count).to_be_visible()
|
|
307
|
+
if imported_chunks:
|
|
308
|
+
expect(self.imported_chunks_count).to_have_text(imported_chunks)
|
|
309
|
+
expect(self.skipped_documents_label).to_be_visible()
|
|
310
|
+
expect(self.skipped_documents_count).to_be_visible()
|
|
311
|
+
if skipped_documents:
|
|
312
|
+
expect(self.skipped_documents_count).to_have_text(skipped_documents)
|
|
313
|
+
if is_git:
|
|
314
|
+
expect(self.total_size_kb_label).to_be_visible()
|
|
315
|
+
expect(self.total_documents_count).to_be_visible()
|
|
316
|
+
expect(self.average_file_size_b_label).to_be_visible()
|
|
317
|
+
expect(self.average_file_size_b_count).to_be_visible()
|
|
318
|
+
return self
|
|
319
|
+
|
|
320
|
+
@step
|
|
321
|
+
def should_open_and_see_processed_data(self, min_count: int = 1):
|
|
322
|
+
expect(self.processed_data_tab_label).to_be_visible()
|
|
323
|
+
self.processed_data_tab_label.click()
|
|
324
|
+
expect(self.processed_data_list.first).to_be_visible()
|
|
325
|
+
count = self.processed_data_list.count()
|
|
326
|
+
assert_that(count, greater_than_or_equal_to(min_count))
|
|
327
|
+
return self
|
|
328
|
+
|
|
329
|
+
@step
|
|
330
|
+
def should_see_processed_data(self, min_count: int = 1):
|
|
331
|
+
expect(self.processed_data_label).to_be_visible()
|
|
332
|
+
expect(self.processed_data_list.first).to_be_visible()
|
|
333
|
+
count = self.processed_data_list.count()
|
|
334
|
+
assert_that(count, greater_than_or_equal_to(min_count))
|
|
335
|
+
return self
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import time
|
|
2
2
|
from time import sleep
|
|
3
|
-
from typing import List, Union, Tuple
|
|
4
3
|
|
|
5
4
|
from codemie_test_harness.tests.utils.credentials_manager import CredentialsManager
|
|
6
5
|
|
|
@@ -144,32 +143,28 @@ class DataSourceUtils(BaseUtils):
|
|
|
144
143
|
|
|
145
144
|
return self.wait_for_indexing(datasource_id)
|
|
146
145
|
|
|
147
|
-
def create_file_datasource(
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
description: str,
|
|
151
|
-
files: List[Union[str, Tuple[str, bytes, str]]],
|
|
152
|
-
shared_with_project: bool = False,
|
|
153
|
-
embeddings_model: str = None,
|
|
154
|
-
) -> DataSource:
|
|
146
|
+
def create_file_datasource(self, **kwargs):
|
|
147
|
+
datasource_name = kwargs.get("name", get_random_name())
|
|
148
|
+
|
|
155
149
|
create_request_params = {
|
|
156
|
-
"name":
|
|
150
|
+
"name": datasource_name,
|
|
157
151
|
"project_name": PROJECT,
|
|
158
|
-
"description": description,
|
|
159
|
-
"shared_with_project": shared_with_project,
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"
|
|
152
|
+
"description": kwargs.get("description", get_random_name()),
|
|
153
|
+
"shared_with_project": kwargs.get("shared_with_project", False),
|
|
154
|
+
"embeddings_model": kwargs.get("embeddings_model"),
|
|
155
|
+
"csv_separator": kwargs.get("csv_separator", ";"),
|
|
156
|
+
"csv_start_row": kwargs.get("csv_start_row", 1),
|
|
157
|
+
"csv_rows_per_document": kwargs.get("csv_rows_per_document", 1000),
|
|
164
158
|
}
|
|
159
|
+
files = kwargs.get("files")
|
|
165
160
|
|
|
166
161
|
create_datasource_request = FileDataSourceRequest(**create_request_params)
|
|
167
162
|
|
|
168
163
|
self.client.datasources.create_file_datasource(create_datasource_request, files)
|
|
169
164
|
|
|
170
165
|
datasource = wait_for_entity(
|
|
171
|
-
lambda: self.client.datasources.list(per_page=200
|
|
172
|
-
entity_name=
|
|
166
|
+
lambda: self.client.datasources.list(per_page=200),
|
|
167
|
+
entity_name=datasource_name,
|
|
173
168
|
)
|
|
174
169
|
|
|
175
170
|
return self.wait_for_indexing(datasource.id)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: codemie-test-harness
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.178
|
|
4
4
|
Summary: Autotest for CodeMie backend and UI
|
|
5
5
|
Author: Anton Yeromin
|
|
6
6
|
Author-email: anton_yeromin@epam.com
|
|
@@ -13,7 +13,7 @@ Requires-Dist: aws-assume-role-lib (>=2.10.0,<3.0.0)
|
|
|
13
13
|
Requires-Dist: boto3 (>=1.39.8,<2.0.0)
|
|
14
14
|
Requires-Dist: click (>=8.1.7,<9.0.0)
|
|
15
15
|
Requires-Dist: codemie-plugins (>=0.1.123,<0.2.0)
|
|
16
|
-
Requires-Dist: codemie-sdk-python (==0.1.
|
|
16
|
+
Requires-Dist: codemie-sdk-python (==0.1.178)
|
|
17
17
|
Requires-Dist: pytest (>=8.4.1,<9.0.0)
|
|
18
18
|
Requires-Dist: pytest-playwright (>=0.7.0,<0.8.0)
|
|
19
19
|
Requires-Dist: pytest-reportportal (>=5.5.2,<6.0.0)
|
|
@@ -146,7 +146,7 @@ codemie_test_harness/tests/test_data/files/test.yaml,sha256=3NDQyzwkRM5d6eCYMScN
|
|
|
146
146
|
codemie_test_harness/tests/test_data/files/test_extended.docx,sha256=8TqjOxgO6ODY82DAayEqFm8D8yV6haoaKSzP-0Z5gl8,112227
|
|
147
147
|
codemie_test_harness/tests/test_data/files/test_extended.xlsx,sha256=_ZjBj1E_uEuWHWGO5x0BO0E3-kQWqSyWi9vG9n2JZpQ,10031
|
|
148
148
|
codemie_test_harness/tests/test_data/git_tools_test_data.py,sha256=7U05vLqkh5uJ0l_KJeHis549id1Of99K0jCsWOb0nXM,8485
|
|
149
|
-
codemie_test_harness/tests/test_data/google_datasource_test_data.py,sha256=
|
|
149
|
+
codemie_test_harness/tests/test_data/google_datasource_test_data.py,sha256=9hO8KnOcb3to4bxsPj3nwIswjfobn6_aYJ6IDMAmXBc,628
|
|
150
150
|
codemie_test_harness/tests/test_data/index_test_data.py,sha256=VZJC_Fmko32EHaybUwCy0mWMiwAeUAAmhRa0Xt4oTHQ,1115
|
|
151
151
|
codemie_test_harness/tests/test_data/integrations_test_data.py,sha256=1YecCRnrBq5NiM9HEnyKFZ17nuFEnZUlNzKcwo09SDM,13050
|
|
152
152
|
codemie_test_harness/tests/test_data/keycloak_tool_test_data.py,sha256=uF8YqHGgLpQVxKdpKXLe-7F-ipEGQiHHh28nZvvVGM8,1244
|
|
@@ -197,28 +197,40 @@ codemie_test_harness/tests/test_data/workflow_validation_messages.py,sha256=zg5B
|
|
|
197
197
|
codemie_test_harness/tests/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
198
198
|
codemie_test_harness/tests/ui/_test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
199
199
|
codemie_test_harness/tests/ui/_test_data/assistant_test_data.py,sha256=DRfungbLNwbFQf6qTNOVjR3l2v7fBDzgUq1v9fwXw78,6829
|
|
200
|
+
codemie_test_harness/tests/ui/_test_data/datasource_test_data.py,sha256=Ubx8o1NPxiJ2adaz6IDpwXDKB9_yE40v5_0az__CX0I,3489
|
|
200
201
|
codemie_test_harness/tests/ui/_test_data/integration_test_data.py,sha256=6YnDIWhOSTSmzIziBCfpqYikVT0kXw_vMrMJBmhnSnQ,4212
|
|
201
202
|
codemie_test_harness/tests/ui/assistants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
202
203
|
codemie_test_harness/tests/ui/assistants/test_create_assistant.py,sha256=YWhz5--YgXBi10K8jPuhG9G2cK5GY9_xAnxDdN6-NJ8,14560
|
|
203
204
|
codemie_test_harness/tests/ui/conftest.py,sha256=KBM3g-lxPQEtbNh6i-1bAYYRlVycbEXg7ztn3x7VobI,4361
|
|
205
|
+
codemie_test_harness/tests/ui/datasource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
206
|
+
codemie_test_harness/tests/ui/datasource/test_create_datasource.py,sha256=bwXgvz2mzR5S-cTBFJNXNv1qW-IfmQaBhoiAjml1Ttc,6358
|
|
207
|
+
codemie_test_harness/tests/ui/datasource/test_datasource_page.py,sha256=Lhl2-zsCxx0QuOt135dbrfqfwMPim5fqnCwynnI2ptQ,2293
|
|
208
|
+
codemie_test_harness/tests/ui/datasource/test_edit_datasource.py,sha256=tahI143j-NVMcwhxLdeImWH9r2Eq3VHaMH1WhbV3FEk,6295
|
|
209
|
+
codemie_test_harness/tests/ui/datasource/test_view_datasource.py,sha256=OJdAKgPAfC685M8mlu1S1KKqo_l2xnNsuX3rfuS01v8,7693
|
|
204
210
|
codemie_test_harness/tests/ui/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
205
211
|
codemie_test_harness/tests/ui/integrations/test_create_integration.py,sha256=ASe1i7Zv3x7RynVkT5rQz79z4lsah6MEPfew6aoTsy0,11962
|
|
206
212
|
codemie_test_harness/tests/ui/pageobject/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
207
213
|
codemie_test_harness/tests/ui/pageobject/assistants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
208
|
-
codemie_test_harness/tests/ui/pageobject/assistants/assistants_page.py,sha256=
|
|
214
|
+
codemie_test_harness/tests/ui/pageobject/assistants/assistants_page.py,sha256=E3aEXpmMhjcmJsO_nE52WdbHXOoK-Hp9vqIw4rEPzrU,6043
|
|
209
215
|
codemie_test_harness/tests/ui/pageobject/assistants/create_assistant_page.py,sha256=xGl5nZAwJJtZ_ej2ycYgywK9EBGj_-AXCW4Z_eEWgYA,21791
|
|
210
216
|
codemie_test_harness/tests/ui/pageobject/assistants/generate_with_ai_modal.py,sha256=rsavzWxmawKzI4wHxixp49IN6m_ZUZNFTJTSnE8jBr8,13732
|
|
211
|
-
codemie_test_harness/tests/ui/pageobject/base_page.py,sha256=
|
|
217
|
+
codemie_test_harness/tests/ui/pageobject/base_page.py,sha256=UJhY9WkCn_GaXvdMXL1oFcmpZkfokz8rnOWYMqdTCF0,8732
|
|
212
218
|
codemie_test_harness/tests/ui/pageobject/components/__init__.py,sha256=6scUFCL2StHbKIoNgGGZdpeDZUwbCrKIH7hwaskAB4E,577
|
|
213
219
|
codemie_test_harness/tests/ui/pageobject/components/execution_history_row.py,sha256=aGHc5AOpGR0tlfmLQfk8272TN6TWiuiXHUcg6PtB1Iw,6499
|
|
214
220
|
codemie_test_harness/tests/ui/pageobject/components/integration_row.py,sha256=TCS6Si1Di6nrU9TTstcc4bxPztIqaWo11JxFzdqPX_c,8492
|
|
215
221
|
codemie_test_harness/tests/ui/pageobject/components/menu.py,sha256=llTWAbJHldo1-wY86k_2Dvs8iSEmMWzrw26AhQJ1kis,10501
|
|
216
222
|
codemie_test_harness/tests/ui/pageobject/components/pop_up.py,sha256=DfdQfLZp_We8K9rNyLXtJqy3vk8BxEnp32h9dTThJUM,3466
|
|
223
|
+
codemie_test_harness/tests/ui/pageobject/components/project_selector.py,sha256=lOXjb9mCUIshon_cUAvt63eCZ43MAft7AWtbZXgVJRA,3543
|
|
217
224
|
codemie_test_harness/tests/ui/pageobject/components/workflow_card.py,sha256=8M4JKYCI46_-0EosFBgWfFuD3-_AH8jVIhSRJCQqamQ,6712
|
|
218
225
|
codemie_test_harness/tests/ui/pageobject/components/workflow_execution_history_item.py,sha256=wSl4ELoEAmlgrh-NiGNfAfFZtnDvenszir7ZoIcmgt0,7884
|
|
219
226
|
codemie_test_harness/tests/ui/pageobject/components/workflow_execution_state.py,sha256=IWir8fP-7oc9t17Rjs6mHCNCxfQfmdfbFY2SsNxZaE4,13837
|
|
220
|
-
codemie_test_harness/tests/ui/pageobject/components/workflow_sidebar.py,sha256=
|
|
227
|
+
codemie_test_harness/tests/ui/pageobject/components/workflow_sidebar.py,sha256=vd7IW7PC7cmvib-bnp6XwIUseEwWoX_Y3Qo_UVkYR5A,17167
|
|
221
228
|
codemie_test_harness/tests/ui/pageobject/components/workflow_state_card.py,sha256=V7V1p3FNPrwVFM0CjZeg0MUkW9bGoF8UP5DuuH-r4gU,11548
|
|
229
|
+
codemie_test_harness/tests/ui/pageobject/datasources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
230
|
+
codemie_test_harness/tests/ui/pageobject/datasources/create_edit_datasource_page.py,sha256=4Xqqdtmh6qSjw1bYANU53SHzHY_c8R2maM4Wk21749k,23730
|
|
231
|
+
codemie_test_harness/tests/ui/pageobject/datasources/datasource_page.py,sha256=T9T3mnUw4IzCF39NxBOiWR_Y6Hu3bb9gb7JvuMMHL-g,7787
|
|
232
|
+
codemie_test_harness/tests/ui/pageobject/datasources/datasource_sidebar.py,sha256=bLVaKuHxCzr_PmsMgqEDs6UWczfSSDBfQBDHnMuaJ18,9644
|
|
233
|
+
codemie_test_harness/tests/ui/pageobject/datasources/view_datasource_page.py,sha256=Ch4CpiU5N36WQ9CK2Xtl9_MzDn7764uJjvADOcPqHu0,11272
|
|
222
234
|
codemie_test_harness/tests/ui/pageobject/integrations/create_integration_page.py,sha256=3-iI3WntzJRxkdjw6HwQkaz3TI3pAWWRkfJvBcb6klk,24911
|
|
223
235
|
codemie_test_harness/tests/ui/pageobject/integrations/integrations_page.py,sha256=Dsik34qzL8uK2KyIlKU--OFm61WyAWZTPBD__nwsBTM,13658
|
|
224
236
|
codemie_test_harness/tests/ui/pageobject/login_page.py,sha256=cs0nYtvYykXfli9vYKWPpIWOEQbksUDUGgq03hulfSg,3062
|
|
@@ -231,7 +243,6 @@ codemie_test_harness/tests/ui/pageobject/workflows/workflow_executions_page.py,s
|
|
|
231
243
|
codemie_test_harness/tests/ui/pageobject/workflows/workflow_template_details.py,sha256=6Su0yLA8wDybCPVE2WFhV6l6r_38aYaRY0mEYnLHlYg,3556
|
|
232
244
|
codemie_test_harness/tests/ui/pageobject/workflows/workflow_templates_page.py,sha256=J5jxdZ2aQ9k15ghyRKYACxX2F9NiR6dXYBw0EaYlaN0,2645
|
|
233
245
|
codemie_test_harness/tests/ui/pageobject/workflows/workflows_page.py,sha256=yqdaSTA4aUeD-8A9Or0OgJZhMr2tDvDWWP_f4uPL5dw,11186
|
|
234
|
-
codemie_test_harness/tests/ui/pytest.ini,sha256=5LM3ib1yTB4jUHrC8Ksas_k8Li6RBuuUTAWCPRx-4MY,554
|
|
235
246
|
codemie_test_harness/tests/ui/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
236
247
|
codemie_test_harness/tests/ui/workflows/test_create_workflow.py,sha256=zX_6-pcYGCLiU6FUAvP-uo3jXy0PEEPBc_eqbP0FLV0,10522
|
|
237
248
|
codemie_test_harness/tests/ui/workflows/test_edit_workflow.py,sha256=RQIV5fSd3xv3tdGidpF8mMwkoHJ57Xn1HzeXnFq4eB0,12913
|
|
@@ -247,7 +258,7 @@ codemie_test_harness/tests/utils/client_factory.py,sha256=xGta0ZaVYzWfwJ4cu3f89K
|
|
|
247
258
|
codemie_test_harness/tests/utils/constants.py,sha256=ZNyM5wERHFN-c8TCvBcxCdFf0As9TOpr22YvLCMHArE,1116
|
|
248
259
|
codemie_test_harness/tests/utils/conversation_utils.py,sha256=SWj6TBWOQoX5Yh6Wk63yHQFveRXgK1mpLb3PUKAa57A,648
|
|
249
260
|
codemie_test_harness/tests/utils/credentials_manager.py,sha256=sqzJUekCwo56zvOOm4BdHvyHPPzvY9aI4nWp1GoLwCQ,52866
|
|
250
|
-
codemie_test_harness/tests/utils/datasource_utils.py,sha256=
|
|
261
|
+
codemie_test_harness/tests/utils/datasource_utils.py,sha256=7I37BBD-ySvH9u-y9wjposohqXZG8ksx2CGvbsHK3WY,12707
|
|
251
262
|
codemie_test_harness/tests/utils/env_resolver.py,sha256=25776Aq9oIDcDzGtfFs07lj7eldeFgmsocxeS3RUclE,4280
|
|
252
263
|
codemie_test_harness/tests/utils/env_utils.py,sha256=9tyVgxKfYqdtSoo9dRTScOZWjAUm82_65JjaKggcwCg,3999
|
|
253
264
|
codemie_test_harness/tests/utils/file_utils.py,sha256=hY-kwnyzvtd1BQif8r5NhvRTGfpKLmQKyRsq1Tuflhg,585
|
|
@@ -370,7 +381,7 @@ codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/__init__.
|
|
|
370
381
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py,sha256=vq6tucNBxiNIQSmIj_pYiiPm0lipU9X3kzeCd6xEbRM,966
|
|
371
382
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
372
383
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/test_workflow_with_vcs_tools.py,sha256=uD2qs361j6Egp4UumfoQ4gC24-NioXfiW0IF53N9hVA,1175
|
|
373
|
-
codemie_test_harness-0.1.
|
|
374
|
-
codemie_test_harness-0.1.
|
|
375
|
-
codemie_test_harness-0.1.
|
|
376
|
-
codemie_test_harness-0.1.
|
|
384
|
+
codemie_test_harness-0.1.178.dist-info/METADATA,sha256=FmHs2W1RcGBATo4rs5B0GT4qXVWmkLSzs9u2OlBo9dk,18310
|
|
385
|
+
codemie_test_harness-0.1.178.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
386
|
+
codemie_test_harness-0.1.178.dist-info/entry_points.txt,sha256=n98t-EOM5M1mnMl_j2X4siyeO9zr0WD9a5LF7JyElIM,73
|
|
387
|
+
codemie_test_harness-0.1.178.dist-info/RECORD,,
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
[pytest]
|
|
2
|
-
addopts = -v --tb=short
|
|
3
|
-
markers =
|
|
4
|
-
ui: UI test cases
|
|
5
|
-
assistant_ui: Assistant-related UI test cases
|
|
6
|
-
workflow_ui: Workflow-related UI test cases
|
|
7
|
-
slow: Slow-running test cases
|
|
8
|
-
critical: Critical path test cases
|
|
9
|
-
smoke: Smoke test cases
|
|
10
|
-
filterwarnings =
|
|
11
|
-
ignore::pytest.PytestUnknownMarkWarning
|
|
12
|
-
ignore::urllib3.exceptions.InsecureRequestWarning
|
|
13
|
-
ignore::pydantic.warnings.PydanticDeprecatedSince20
|
|
14
|
-
ignore::DeprecationWarning
|
|
15
|
-
testpaths = .
|
|
16
|
-
python_files = test_*.py
|
|
17
|
-
python_classes = Test*
|
|
18
|
-
python_functions = test_*
|
|
File without changes
|
{codemie_test_harness-0.1.177.dist-info → codemie_test_harness-0.1.178.dist-info}/entry_points.txt
RENAMED
|
File without changes
|