codemie-test-harness 0.1.171__py3-none-any.whl → 0.1.173__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 (21) hide show
  1. codemie_test_harness/tests/assistant/test_assistants.py +40 -0
  2. codemie_test_harness/tests/llm/assistants/test_lite_llm.py +8 -1
  3. codemie_test_harness/tests/test_data/files/test_extended.docx +0 -0
  4. codemie_test_harness/tests/ui/_test_data/__init__.py +0 -0
  5. codemie_test_harness/tests/ui/_test_data/assistant_test_data.py +1037 -0
  6. codemie_test_harness/tests/ui/_test_data/integration_test_data.py +121 -0
  7. codemie_test_harness/tests/ui/assistants/test_create_assistant.py +1 -1
  8. codemie_test_harness/tests/ui/conftest.py +25 -0
  9. codemie_test_harness/tests/ui/integrations/__init__.py +0 -0
  10. codemie_test_harness/tests/ui/integrations/test_create_integration.py +320 -0
  11. codemie_test_harness/tests/ui/pageobject/assistants/create_assistant_page.py +0 -20
  12. codemie_test_harness/tests/ui/pageobject/base_page.py +19 -6
  13. codemie_test_harness/tests/ui/pageobject/components/integration_row.py +299 -0
  14. codemie_test_harness/tests/ui/pageobject/integrations/create_integration_page.py +772 -0
  15. codemie_test_harness/tests/ui/pageobject/integrations/integrations_page.py +434 -0
  16. codemie_test_harness/tests/utils/credentials_manager.py +16 -0
  17. {codemie_test_harness-0.1.171.dist-info → codemie_test_harness-0.1.173.dist-info}/METADATA +2 -2
  18. {codemie_test_harness-0.1.171.dist-info → codemie_test_harness-0.1.173.dist-info}/RECORD +20 -12
  19. codemie_test_harness/tests/test_data/assistant_test_data.py +0 -596
  20. {codemie_test_harness-0.1.171.dist-info → codemie_test_harness-0.1.173.dist-info}/WHEEL +0 -0
  21. {codemie_test_harness-0.1.171.dist-info → codemie_test_harness-0.1.173.dist-info}/entry_points.txt +0 -0
@@ -1,596 +0,0 @@
1
- """
2
- Test Data for Assistant UI Tests
3
-
4
- This module provides test data generation and management for assistant-related UI tests.
5
- Following best practices by separating test data from test logic and providing
6
- reusable data factories for consistent testing.
7
- """
8
-
9
- from dataclasses import dataclass
10
- from typing import Optional, List
11
- import pytest
12
-
13
- from codemie_test_harness.tests.utils.base_utils import get_random_name
14
-
15
-
16
- @dataclass
17
- class AssistantTestData:
18
- """
19
- Data class for assistant test data.
20
-
21
- This class encapsulates all the data needed for assistant creation tests,
22
- providing a clean and type-safe way to manage test data.
23
- """
24
-
25
- name: str
26
- description: str
27
- system_prompt: str
28
- icon_url: Optional[str] = None
29
- shared: bool = False
30
-
31
-
32
- class AssistantTestDataFactory:
33
- """
34
- Factory class for generating assistant test data.
35
-
36
- This factory provides various methods to create different types of
37
- assistant test data for different testing scenarios.
38
- """
39
-
40
- @staticmethod
41
- def create_minimal_assistant_data() -> AssistantTestData:
42
- """
43
- Create minimal assistant data with only required fields.
44
-
45
- This represents the most basic assistant creation scenario
46
- with minimal required information.
47
-
48
- Returns:
49
- AssistantTestData: Minimal assistant test data
50
- """
51
- return AssistantTestData(
52
- name=f"QA Test Assistant {get_random_name()}",
53
- description="Minimal test assistant for QA automation.",
54
- system_prompt=(
55
- "You are a test assistant created for QA validation purposes. "
56
- "Provide helpful and accurate responses to user queries."
57
- ),
58
- shared=False,
59
- icon_url=ICON_URL,
60
- )
61
-
62
- @staticmethod
63
- def create_shared_assistant_data() -> AssistantTestData:
64
- """
65
- Create shared assistant data for public/shared testing scenarios.
66
-
67
- Returns:
68
- AssistantTestData: Shared assistant test data
69
- """
70
- return AssistantTestData(
71
- name=f"QA Shared Assistant {get_random_name()}",
72
- description="Shared QA assistant available to all team members",
73
- system_prompt=(
74
- "You are a shared QA assistant available to the entire team. "
75
- "Provide collaborative testing support, knowledge sharing, and "
76
- "help maintain consistent quality standards across projects."
77
- ),
78
- icon_url=ICON_URL,
79
- shared=True,
80
- )
81
-
82
- @staticmethod
83
- def create_validation_test_data() -> List[AssistantTestData]:
84
- """
85
- Create a list of assistant data for validation testing scenarios.
86
-
87
- This includes data for testing various validation scenarios,
88
- edge cases in form validation, and error handling.
89
-
90
- Returns:
91
- List[AssistantTestData]: List of validation test data
92
- """
93
- return [
94
- # Empty name scenario
95
- AssistantTestData(
96
- name="",
97
- description="Test description",
98
- system_prompt="Test prompt",
99
- ),
100
- # Long name scenario
101
- AssistantTestData(
102
- name="A" * 100, # Very long name
103
- description="Test description for long name validation",
104
- system_prompt="Test prompt for long name scenario",
105
- ),
106
- # Empty description scenario
107
- AssistantTestData(
108
- name="Test Assistant",
109
- description="",
110
- system_prompt="Test prompt",
111
- ),
112
- # Empty system prompt scenario
113
- AssistantTestData(
114
- name="Test Assistant",
115
- description="Test description",
116
- system_prompt="",
117
- ),
118
- ]
119
-
120
-
121
- class AssistantValidationRules:
122
- """
123
- Validation rules and constraints for assistant data.
124
-
125
- This class defines the validation rules that should be applied
126
- to assistant data during testing.
127
- """
128
-
129
- # Field length constraints
130
- MAX_NAME_LENGTH = 100
131
- MAX_DESCRIPTION_LENGTH = 1000
132
- MAX_ICON_URL_LENGTH = 500
133
-
134
- # Required fields
135
- REQUIRED_FIELDS = ["name", "description", "system_prompt"]
136
-
137
- # Validation error messages (expected messages for testing)
138
- ERROR_MESSAGES = {
139
- "name_required": "Name is required",
140
- "name_too_long": f"Name must be less than {MAX_NAME_LENGTH} characters",
141
- "description_required": "Description is required",
142
- "description_too_long": f"Description must be less than {MAX_DESCRIPTION_LENGTH} characters",
143
- "system_prompt_required": "System prompt is required",
144
- "invalid_url": "Please enter a valid URL",
145
- "invalid_type": "Please select a valid assistant type",
146
- }
147
-
148
-
149
- # ==================== CONVENIENCE FUNCTIONS ====================
150
-
151
-
152
- def get_minimal_assistant_data() -> AssistantTestData:
153
- """Convenience function to get minimal assistant data."""
154
- return AssistantTestDataFactory.create_minimal_assistant_data()
155
-
156
-
157
- def get_shared_assistant_data() -> AssistantTestData:
158
- """Convenience function to get shared assistant data."""
159
- return AssistantTestDataFactory.create_shared_assistant_data()
160
-
161
-
162
- def get_validation_test_data() -> List[AssistantTestData]:
163
- """Convenience function to get validation test data."""
164
- return AssistantTestDataFactory.create_validation_test_data()
165
-
166
-
167
- # ==================== TEST DATA CONSTANTS ====================
168
-
169
- # Common test values for reuse
170
- COMMON_TEST_PROMPTS = {
171
- "qa_assistant": (
172
- "You are a QA testing assistant. Your primary role is to help with "
173
- "quality assurance tasks, test automation, and ensuring software quality. "
174
- "Provide detailed and actionable guidance."
175
- ),
176
- "general_assistant": (
177
- "You are a helpful assistant. Provide clear, accurate, and helpful "
178
- "responses to user queries. Always be polite and professional."
179
- ),
180
- "specialist_assistant": (
181
- "You are a specialist assistant with deep expertise in your domain. "
182
- "Provide expert-level guidance and detailed technical solutions."
183
- ),
184
- }
185
-
186
- COMMON_TEST_DESCRIPTIONS = {
187
- "qa_assistant": "QA testing assistant for automation and quality assurance tasks",
188
- "general_assistant": "General purpose assistant for various tasks and queries",
189
- "specialist_assistant": "Specialist assistant with domain-specific expertise",
190
- }
191
-
192
- COMMON_ICON_URLS = {
193
- "qa_icon": "https://example.com/qa-assistant-icon.png",
194
- "general_icon": "https://example.com/general-assistant-icon.png",
195
- "specialist_icon": "https://example.com/specialist-assistant-icon.png",
196
- }
197
-
198
- ICON_URL = "https://raw.githubusercontent.com/epam-gen-ai-run/ai-run-install/main/docs/assets/ai/AQAUiTestGenerator.png"
199
-
200
- # ==================== EXCEL TOOL EXTENDED FUNCTIONALITY TEST DATA ====================
201
-
202
- # Test data for Excel tool extended functionality covering EPMCDME-7877 requirements
203
- EXCEL_TOOL_TEST_DATA = [
204
- pytest.param(
205
- "Analyze the data in test_extended.xlsx and extract information from visible sheets only",
206
- """
207
- The analysis of the visible sheets in the file **test_extended.xlsx** yields the following data:
208
-
209
- ### First Sheet
210
- | Column 1 | Column 2 | Column 3 |
211
- | --- | --- | --- |
212
- | Cars | Test | 222 |
213
- | Data | Cats | 111 |
214
- | | | Travellers |
215
- | Tree | Forest | |
216
- | Tree | Forest | |
217
- | Tree | Forest | |
218
- | Tree | Forest | |
219
- | Bykes | Red | 877 |
220
-
221
- ### Second Sheet
222
- | Column 1 | Column 2 | Column 3 | Column 4 |
223
- | --- | --- | --- | --- |
224
- | Cars | Test | 222 | Second |
225
- | Data | Cats | 111 | Second |
226
- | | | Travellers | Second |
227
- | Tree | Forest | | Second |
228
- | Tree | Forest | | Second |
229
- | Tree | Forest | | Second |
230
- | Tree | Forest | | Second |
231
- | Bykes | Red | 877 | Second |
232
-
233
- The hidden sheet data has been excluded based on the request for visible sheets only. If you need further analysis on specific data or another request, feel free to ask!
234
- """,
235
- id="visible_sheets_only",
236
- ),
237
- pytest.param(
238
- "Extract all data from test_extended.xlsx including hidden sheets",
239
- """
240
- Here is the extracted data from the `test_extended.xlsx` file, including data from hidden sheets:
241
-
242
- ### First Sheet
243
- | Column 1 | Column 2 | Column 3 |
244
- | --- | --- | --- |
245
- | Cars | Test | 222 |
246
- | Data | Cats | 111 |
247
- | | | Travellers |
248
- | | | |
249
- | Tree | Forest | |
250
- | Tree | Forest | |
251
- | Tree | Forest | |
252
- | Tree | Forest | |
253
- | | | |
254
- | Bykes | Red | 877 |
255
-
256
- ### Second Sheet
257
- | Column 1 | Column 2 | Column 3 | Column 4 |
258
- | --- | --- | --- | --- |
259
- | Cars | Test | 222 | Second |
260
- | Data | Cats | 111 | Second |
261
- | | | Travellers | Second |
262
- | | | | |
263
- | Tree | Forest | | Second |
264
- | Tree | Forest | | Second |
265
- | Tree | Forest | | Second |
266
- | Tree | Forest | | Second |
267
- | | | | |
268
- | Bykes | Red | 877 | Second |
269
-
270
- ### Hidden Sheet
271
- | Column 1 | Column 2 | Column 3 | Column 4 |
272
- | --- | --- | --- | --- |
273
- | Cars | Test | 222 | Hidden |
274
- | Data | Cats | 111 | Hidden |
275
- | | | Travellers | Hidden |
276
- | | | | |
277
- | Tree | Forest | | Hidden |
278
- | Tree | Forest | | Hidden |
279
- | Tree | Forest | | Hidden |
280
- | Tree | Forest | | Hidden |
281
- | | | | |
282
- | Bykes | Red | 877 | Hidden |
283
- """,
284
- id="all_sheets_including_hidden",
285
- ),
286
- pytest.param(
287
- "List all sheet names in test_extended.xlsx",
288
- """
289
- The Excel file `test_extended.xlsx` contains the following sheets:
290
-
291
- - First sheet
292
- - Second sheet
293
- - Hidden sheet
294
- """,
295
- id="all_sheet_names",
296
- ),
297
- pytest.param(
298
- "Get only visible sheet names from test_extended.xlsx",
299
- """
300
- The visible sheets in the `test_extended.xlsx` file are:
301
-
302
- - First sheet
303
- - Second sheet
304
- """,
305
- id="visible_sheet_names_only",
306
- ),
307
- pytest.param(
308
- "Get comprehensive statistics about test_extended.xlsx file structure",
309
- """
310
- The Excel file `test_extended.xlsx` contains the following structure:
311
-
312
- - **Total Sheets:** 3
313
-
314
- ### Sheet: First sheet
315
- - **Columns:**
316
- - Column 1: string, Sample Values: `Cars`, `Data`, ``, ...
317
- - Column 2: string, Sample Values: `Test`, `Cats`, ``, ...
318
- - Column 3: string, Sample Values: `222`, `111`, `Travellers`, ...
319
-
320
- ### Sheet: Second sheet
321
- - **Columns:**
322
- - Column 1: string, Sample Values: `Cars`, `Data`, ``, ...
323
- - Column 2: string, Sample Values: `Test`, `Cats`, ``, ...
324
- - Column 3: string, Sample Values: `222`, `111`, `Travellers`, ...
325
- - Column 4: string, Sample Values: `Second`
326
-
327
- ### Sheet: Hidden sheet
328
- - **Columns:**
329
- - Column 1: string, Sample Values: `Cars`, `Data`, ``, ...
330
- - Column 2: string, Sample Values: `Test`, `Cats`, ``, ...
331
- - Column 3: string, Sample Values: `222`, `111`, `Travellers`, ...
332
- - Column 4: string, Sample Values: `Hidden`
333
-
334
- This summary provides an overview of the column names, data types, and sample values for each sheet within the Excel file.
335
- """,
336
- id="file_statistics",
337
- ),
338
- pytest.param(
339
- "Extract data from the first sheet only using sheet index from test_extended.xlsx",
340
- """
341
- Here is the extracted data from the first sheet of the file `test_extended.xlsx`:
342
-
343
- | Column 1 | Column 2 | Column 3 |
344
- |:---------|:---------|:-----------|
345
- | Cars | Test | 222 |
346
- | Data | Cats | 111 |
347
- | | | Travellers |
348
- | Tree | Forest | |
349
- | Tree | Forest | |
350
- | Tree | Forest | |
351
- | Tree | Forest | |
352
- | Bykes | Red | 877 |
353
- """,
354
- id="single_sheet_by_index",
355
- ),
356
- pytest.param(
357
- "Extract data only from 'Second sheet' in test_extended.xlsx",
358
- """
359
- The data extracted from the "Second sheet" in `test_extended.xlsx` is as follows:
360
-
361
- | Column 1 | Column 2 | Column 3 | Column 4 |
362
- |----------|----------|------------|----------|
363
- | Cars | Test | 222 | Second |
364
- | Data | Cats | 111 | Second |
365
- | | | Travellers | Second |
366
- | Tree | Forest | | Second |
367
- | Tree | Forest | | Second |
368
- | Tree | Forest | | Second |
369
- | Tree | Forest | | Second |
370
- | Bykes | Red | 877 | Second |
371
- """,
372
- id="single_sheet_by_name",
373
- ),
374
- pytest.param(
375
- "Process test_extended.xlsx with data cleaning to remove empty rows and columns",
376
- """
377
- The file `test_extended.xlsx` was processed with data cleaning to remove empty rows and columns. Here is a representation of the cleaned Excel sheets:
378
-
379
- ### First Sheet
380
- | Column 1 | Column 2 | Column 3 |
381
- |----------|----------|----------|
382
- | Cars | Test | 222 |
383
- | Data | Cats | 111 |
384
- | | | Travellers|
385
- | Tree | Forest | |
386
- | Tree | Forest | |
387
- | Tree | Forest | |
388
- | Tree | Forest | |
389
- | Bykes | Red | 877 |
390
-
391
- ### Second Sheet
392
- | Column 1 | Column 2 | Column 3 | Column 4 |
393
- |----------|----------|----------|----------|
394
- | Cars | Test | 222 | Second |
395
- | Data | Cats | 111 | Second |
396
- | | | Travellers| Second |
397
- | Tree | Forest | | Second |
398
- | Tree | Forest | | Second |
399
- | Tree | Forest | | Second |
400
- | Tree | Forest | | Second |
401
- | Bykes | Red | 877 | Second |
402
-
403
- ### Hidden Sheet
404
- | Column 1 | Column 2 | Column 3 | Column 4 |
405
- |----------|----------|----------|----------|
406
- | Cars | Test | 222 | Hidden |
407
- | Data | Cats | 111 | Hidden |
408
- | | | Travellers| Hidden |
409
- | Tree | Forest | | Hidden |
410
- | Tree | Forest | | Hidden |
411
- | Tree | Forest | | Hidden |
412
- | Tree | Forest | | Hidden |
413
- | Bykes | Red | 877 | Hidden |
414
-
415
- The visible sheets have been cleaned, taking away rows and columns that were completely empty. Hidden sheets have been processed but are not visible by default.
416
- """,
417
- id="data_cleaning",
418
- ),
419
- pytest.param(
420
- "Analyze test_extended.xlsx with visible_only=False to include hidden sheets",
421
- """
422
- The Excel file `test_extended.xlsx` contains three sheets, including a hidden one. Here's a summary of each sheet's content:
423
-
424
- ### First Sheet
425
- | Column 1 | Column 2 | Column 3 |
426
- | --- | --- | --- |
427
- | Cars | Test | 222 |
428
- | Data | Cats | 111 |
429
- | | | Travellers |
430
- | | | |
431
- | Tree | Forest | |
432
- | Tree | Forest | |
433
- | Tree | Forest | |
434
- | Tree | Forest | |
435
- | | | |
436
- | Bykes | Red | 877 |
437
-
438
- ### Second Sheet
439
- | Column 1 | Column 2 | Column 3 | Column 4 |
440
- | --- | --- | --- | --- |
441
- | Cars | Test | 222 | Second |
442
- | Data | Cats | 111 | Second |
443
- | | | Travellers | Second |
444
- | | | | |
445
- | Tree | Forest | | Second |
446
- | Tree | Forest | | Second |
447
- | Tree | Forest | | Second |
448
- | Tree | Forest | | Second |
449
- | | | | |
450
- | Bykes | Red | 877 | Second |
451
-
452
- ### Hidden Sheet
453
- | Column 1 | Column 2 | Column 3 | Column 4 |
454
- | --- | --- | --- | --- |
455
- | Cars | Test | 222 | Hidden |
456
- | Data | Cats | 111 | Hidden |
457
- | | | Travellers | Hidden |
458
- | | | | |
459
- | Tree | Forest | | Hidden |
460
- | Tree | Forest | | Hidden |
461
- | Tree | Forest | | Hidden |
462
- | Tree | Forest | | Hidden |
463
- | | | | |
464
- | Bykes | Red | 877 | Hidden |
465
-
466
- ### Observations:
467
- - Each sheet has a similar structure, with `Column 1` and `Column 2` containing repeated entries.
468
- - The hidden sheet appears to be similar to the second sheet but with the label 'Hidden' in `Column 4`.
469
- - The first sheet doesn't have a `Column 4` like the other two sheets.
470
- - There are several rows with missing values, especially in `Column 1` and `Column 2`.
471
-
472
- Let me know if you need more in-depth analysis or specific insights from these sheets!
473
- """,
474
- id="hidden_sheet_visibility",
475
- ),
476
- pytest.param(
477
- "Analyze column structure and data types in test_extended.xlsx",
478
- """
479
- The Excel file `test_extended.xlsx` contains a total of 3 sheets: "First sheet", "Second sheet", and a "Hidden sheet". Here's an overview of the column structure and data types for each sheet:
480
-
481
- ### Sheet: First sheet
482
- - **Columns:**
483
- - **Column 1**: string (Sample Values: `Cars`, `Data`, ...)
484
- - **Column 2**: string (Sample Values: `Test`, `Cats`, ...)
485
- - **Column 3**: string (Sample Values: `222`, `111`, `Travellers`, ...)
486
-
487
- ### Sheet: Second sheet
488
- - **Columns:**
489
- - **Column 1**: string (Sample Values: `Cars`, `Data`, ...)
490
- - **Column 2**: string (Sample Values: `Test`, `Cats`, ...)
491
- - **Column 3**: string (Sample Values: `222`, `111`, `Travellers`, ...)
492
- - **Column 4**: string (Sample Value: `Second`)
493
-
494
- ### Sheet: Hidden sheet
495
- - **Columns:**
496
- - **Column 1**: string (Sample Values: `Cars`, `Data`, ...)
497
- - **Column 2**: string (Sample Values: `Test`, `Cats`, ...)
498
- - **Column 3**: string (Sample Values: `222`, `111`, `Travellers`, ...)
499
- - **Column 4**: string (Sample Value: `Hidden`)
500
-
501
- All columns across the sheets predominantly contain string data types. If you have any further questions or need additional analysis, feel free to ask!
502
- """,
503
- id="column_structure_analysis",
504
- ),
505
- pytest.param(
506
- "Normalize test_extended.xlsx data to standard tabular structure with markdown format",
507
- """
508
- Here is the normalized content from the `test_extended.xlsx`, structured in markdown tables:
509
-
510
- ### First Sheet
511
- ```markdown
512
- | Column 1 | Column 2 | Column 3 |
513
- |----------|----------|----------|
514
- | Cars | Test | 222 |
515
- | Data | Cats | 111 |
516
- | | | Travellers|
517
- | Tree | Forest | |
518
- | Tree | Forest | |
519
- | Tree | Forest | |
520
- | Tree | Forest | |
521
- | Bykes | Red | 877 |
522
- ```
523
-
524
- ### Second Sheet
525
- ```markdown
526
- | Column 1 | Column 2 | Column 3 | Column 4 |
527
- |----------|----------|----------|----------|
528
- | Cars | Test | 222 | Second |
529
- | Data | Cats | 111 | Second |
530
- | | | Travellers| Second |
531
- | Tree | Forest | | Second |
532
- | Tree | Forest | | Second |
533
- | Tree | Forest | | Second |
534
- | Tree | Forest | | Second |
535
- | Bykes | Red | 877 | Second |
536
- ```
537
-
538
- ### Hidden Sheet
539
- ```markdown
540
- | Column 1 | Column 2 | Column 3 | Column 4 |
541
- |----------|----------|----------|----------|
542
- | Cars | Test | 222 | Hidden |
543
- | Data | Cats | 111 | Hidden |
544
- | | | Travellers| Hidden |
545
- | Tree | Forest | | Hidden |
546
- | Tree | Forest | | Hidden |
547
- | Tree | Forest | | Hidden |
548
- | Tree | Forest | | Hidden |
549
- | Bykes | Red | 877 | Hidden |
550
- ```
551
-
552
- Each sheet has been normalized into a standard tabular markdown format.
553
- """,
554
- id="tabular_normalization",
555
- ),
556
- pytest.param(
557
- "Perform comprehensive analysis of all sheets in test_extended.xlsx including data summary",
558
- """
559
- The file `test_extended.xlsx` contains the following information:
560
-
561
- ### Overall Summary
562
- - **Total Sheets:** 3
563
-
564
- ### Detailed Sheet Information
565
-
566
- #### 1. First Sheet
567
- - **Columns:**
568
- | Column Name | Data Type | Sample Values |
569
- |-------------|-----------|-------------------|
570
- | Column 1 | string | `Cars`, `Data`, ...|
571
- | Column 2 | string | `Test`, `Cats`, ...|
572
- | Column 3 | string | `222`, `111`, ... |
573
-
574
- #### 2. Second Sheet
575
- - **Columns:**
576
- | Column Name | Data Type | Sample Values |
577
- |-------------|-----------|-------------------|
578
- | Column 1 | string | `Cars`, `Data`, ...|
579
- | Column 2 | string | `Test`, `Cats`, ...|
580
- | Column 3 | string | `222`, `111`, ... |
581
- | Column 4 | string | `Second` |
582
-
583
- #### 3. Hidden Sheet
584
- - **Columns:**
585
- | Column Name | Data Type | Sample Values |
586
- |-------------|-----------|-------------------|
587
- | Column 1 | string | `Cars`, `Data`, ...|
588
- | Column 2 | string | `Test`, `Cats`, ...|
589
- | Column 3 | string | `222`, `111`, ... |
590
- | Column 4 | string | `Hidden` |
591
-
592
- These sheets include a variety of string data across the columns with consistent format among the visible and hidden sheets.
593
- """,
594
- id="comprehensive_analysis",
595
- ),
596
- ]