codemie-test-harness 0.1.197__py3-none-any.whl → 0.1.198__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/cli/cli.py +22 -1
- codemie_test_harness/cli/commands/config_cmd.py +1 -1
- codemie_test_harness/cli/commands/run_cmd.py +9 -0
- codemie_test_harness/cli/constants.py +21 -0
- codemie_test_harness/cli/runner.py +5 -1
- codemie_test_harness/pytest.ini +3 -0
- codemie_test_harness/tests/conftest.py +17 -1
- codemie_test_harness/tests/integrations/user/test_default_integrations.py +41 -8
- codemie_test_harness/tests/llm/assistants/test_llm.py +2 -13
- codemie_test_harness/tests/test_data/assistant_test_data.py +414 -414
- {codemie_test_harness-0.1.197.dist-info → codemie_test_harness-0.1.198.dist-info}/METADATA +98 -2
- {codemie_test_harness-0.1.197.dist-info → codemie_test_harness-0.1.198.dist-info}/RECORD +14 -14
- {codemie_test_harness-0.1.197.dist-info → codemie_test_harness-0.1.198.dist-info}/WHEEL +0 -0
- {codemie_test_harness-0.1.197.dist-info → codemie_test_harness-0.1.198.dist-info}/entry_points.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: codemie-test-harness
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.198
|
|
4
4
|
Summary: Autotest for CodeMie backend and UI
|
|
5
5
|
Author: Anton Yeromin
|
|
6
6
|
Author-email: anton_yeromin@epam.com
|
|
@@ -13,12 +13,13 @@ 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.198)
|
|
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-repeat (>=0.9.3,<0.10.0)
|
|
20
20
|
Requires-Dist: pytest-reportportal (>=5.5.2,<6.0.0)
|
|
21
21
|
Requires-Dist: pytest-rerunfailures (>=15.1,<16.0)
|
|
22
|
+
Requires-Dist: pytest-timeout (>=2.4.0,<3.0.0)
|
|
22
23
|
Requires-Dist: pytest-xdist (>=3.6.1,<4.0.0)
|
|
23
24
|
Requires-Dist: python-dotenv (>=1.1.0,<2.0.0)
|
|
24
25
|
Requires-Dist: python-gitlab (>=5.6.0,<6.0.0)
|
|
@@ -319,6 +320,56 @@ codemie-test-harness run --marks excel_generation --count 100 -n 20 # Overrides
|
|
|
319
320
|
|
|
320
321
|
**Note:** The `--count` parameter requires the `pytest-repeat` plugin, which is included in the dependencies.
|
|
321
322
|
|
|
323
|
+
#### Test Timeout Control
|
|
324
|
+
|
|
325
|
+
Control per-test timeout to prevent tests from running indefinitely. Tests exceeding the timeout will be **automatically terminated and marked as FAILED**.
|
|
326
|
+
|
|
327
|
+
**Configuration Priority**: CLI args → Environment variable → Config file → Default (300 seconds)
|
|
328
|
+
|
|
329
|
+
**Usage Examples:**
|
|
330
|
+
|
|
331
|
+
```shell
|
|
332
|
+
# Via CLI argument (600 seconds = 10 minutes)
|
|
333
|
+
codemie-test-harness run --timeout 600 --marks smoke
|
|
334
|
+
|
|
335
|
+
# Via config file (persistent)
|
|
336
|
+
codemie-test-harness config set TEST_TIMEOUT 900
|
|
337
|
+
codemie-test-harness run --marks api
|
|
338
|
+
|
|
339
|
+
# Via environment variable
|
|
340
|
+
export TEST_TIMEOUT=300
|
|
341
|
+
codemie-test-harness run --marks smoke
|
|
342
|
+
|
|
343
|
+
# Disable timeout for debugging (use 0)
|
|
344
|
+
codemie-test-harness run --timeout 0 --marks smoke
|
|
345
|
+
|
|
346
|
+
# Override config default for specific run
|
|
347
|
+
codemie-test-harness config set TEST_TIMEOUT 600
|
|
348
|
+
codemie-test-harness run --timeout 1200 --marks slow # Uses 1200, not 600
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Default**: 300 seconds (5 minutes) per test
|
|
352
|
+
|
|
353
|
+
**What Happens on Timeout?**
|
|
354
|
+
|
|
355
|
+
When a test exceeds the configured timeout:
|
|
356
|
+
1. ✅ **Test is automatically terminated** - Execution stops immediately
|
|
357
|
+
2. ✅ **Marked as FAILED** - Test result shows as failed with clear timeout message
|
|
358
|
+
3. ✅ **Error details displayed** - Shows which test timed out and the configured limit
|
|
359
|
+
4. ✅ **Remaining tests continue** - Other tests proceed normally
|
|
360
|
+
5. ✅ **Stack trace captured** - Shows where the test was when timeout occurred
|
|
361
|
+
|
|
362
|
+
**Example timeout error output:**
|
|
363
|
+
```
|
|
364
|
+
FAILED tests/test_slow_operation.py::test_data_processing - Failed: Timeout >300.0s
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
**Notes:**
|
|
368
|
+
- Timeout applies to **individual test functions**, not the entire test run
|
|
369
|
+
- Useful for preventing hanging tests in CI/CD pipelines
|
|
370
|
+
- Consider increasing timeout for legitimate long-running operations (data processing, large file operations)
|
|
371
|
+
- Timeout of 0 disables the timeout (use for debugging only)
|
|
372
|
+
|
|
322
373
|
#### Assistant Chat Interface
|
|
323
374
|
|
|
324
375
|
Interact directly with CodeMie assistants through the CLI:
|
|
@@ -547,6 +598,51 @@ pytest -n 20 --count 100 -m smoke --reruns 2 # Heavy load with retries
|
|
|
547
598
|
- `--reruns 2` uses pytest-rerunfailures to improve resiliency in flaky environments
|
|
548
599
|
- `--count N` uses pytest-repeat to run each test N times (useful for performance/load testing)
|
|
549
600
|
|
|
601
|
+
#### Test Timeout Configuration
|
|
602
|
+
|
|
603
|
+
Tests have a configurable timeout to prevent hanging. Default is **300 seconds (5 minutes)** per test.
|
|
604
|
+
|
|
605
|
+
**Configure in .env file:**
|
|
606
|
+
```properties
|
|
607
|
+
TEST_TIMEOUT=600 # 10 minutes
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
**Override via pytest CLI:**
|
|
611
|
+
```shell
|
|
612
|
+
# Set timeout for this run
|
|
613
|
+
pytest -n 10 -m smoke --timeout 900 # 15 minutes
|
|
614
|
+
|
|
615
|
+
# Disable timeout (debugging)
|
|
616
|
+
pytest -m slow_tests --timeout 0
|
|
617
|
+
|
|
618
|
+
# Use default from .env or pytest.ini
|
|
619
|
+
pytest -n 10 -m api # Uses TEST_TIMEOUT from .env or 300s default
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
**Timeout Behavior:**
|
|
623
|
+
|
|
624
|
+
When a test exceeds the configured timeout:
|
|
625
|
+
- Test execution is **terminated immediately**
|
|
626
|
+
- Test is marked as **FAILED** with a timeout error message
|
|
627
|
+
- Stack trace shows where the test was when timeout occurred
|
|
628
|
+
- Remaining tests continue execution normally
|
|
629
|
+
|
|
630
|
+
**Example timeout failure:**
|
|
631
|
+
```
|
|
632
|
+
================================== FAILURES ===================================
|
|
633
|
+
_________________ test_slow_workflow_execution ________________
|
|
634
|
+
|
|
635
|
+
E Failed: Timeout >300.0s
|
|
636
|
+
|
|
637
|
+
tests/workflow/test_workflows.py:145: Failed
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
**Best Practices:**
|
|
641
|
+
- Keep default timeout reasonable (5-10 minutes for E2E tests)
|
|
642
|
+
- Increase timeout for specific slow tests using `@pytest.mark.timeout(900)`
|
|
643
|
+
- Use timeout=0 only for debugging hanging tests
|
|
644
|
+
- Consider if a test legitimately needs > 5 minutes (optimize if possible)
|
|
645
|
+
|
|
550
646
|
### UI tests (Playwright)
|
|
551
647
|
|
|
552
648
|
Install browsers once:
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
codemie_test_harness/.env,sha256=qwCZaT0wIqswimUpuny4SfHOG6FsLClAAtjddztA3GQ,177
|
|
2
2
|
codemie_test_harness/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
codemie_test_harness/cli/__init__.py,sha256=da1PTClDMl-IBkrSvq6JC1lnS-K_BASzCvxVhNxN5Ls,13
|
|
4
|
-
codemie_test_harness/cli/cli.py,sha256=
|
|
4
|
+
codemie_test_harness/cli/cli.py,sha256=5R9YSNEO_TxjYiHH2JsrEgb7utRmFfn8norhbvsZKBM,5053
|
|
5
5
|
codemie_test_harness/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
codemie_test_harness/cli/commands/assistant_cmd.py,sha256=LuAWMFuZPYdP51dNcqjalur8CHobkSVlt49f97cgJEg,3076
|
|
7
|
-
codemie_test_harness/cli/commands/config_cmd.py,sha256=
|
|
7
|
+
codemie_test_harness/cli/commands/config_cmd.py,sha256=QDZSEXWoenkEvX55UaDm7rTlDTdBaWDTNtplXhoAAUQ,22477
|
|
8
8
|
codemie_test_harness/cli/commands/marks_cmd.py,sha256=8mKGJNLkGBVZRw2DwCDUAyZOO2fKyfV18J60eaB5eCY,1392
|
|
9
|
-
codemie_test_harness/cli/commands/run_cmd.py,sha256=
|
|
9
|
+
codemie_test_harness/cli/commands/run_cmd.py,sha256=J6l1nrIQbr9iJ473TCB5KbEfOwkIaxS6bJFmngxmB4o,1760
|
|
10
10
|
codemie_test_harness/cli/commands/workflow_cmd.py,sha256=QwT_6DAyjeWBZiamvGuBBi6JKh9Cu-wS756xClWmpzI,1784
|
|
11
|
-
codemie_test_harness/cli/constants.py,sha256=
|
|
11
|
+
codemie_test_harness/cli/constants.py,sha256=9h49sgx4vBA5M1XmkBF5u3_Qhj2C144a1N5URsTq5sw,12486
|
|
12
12
|
codemie_test_harness/cli/marks_utils.py,sha256=CGAIMWO7EqApYTl3qMxBkREjA3yOQOQGjqgbxQ6bL1s,11164
|
|
13
|
-
codemie_test_harness/cli/runner.py,sha256=
|
|
13
|
+
codemie_test_harness/cli/runner.py,sha256=ZQNKwD98SWcSXOXeVtK39q-cdPWnFLwwUHPDua-4s5w,3954
|
|
14
14
|
codemie_test_harness/cli/utils.py,sha256=1X7XPcYAgeH1BpwKo4sOk1VpYdxda15usi9U9_dv7BY,1557
|
|
15
|
-
codemie_test_harness/pytest.ini,sha256=
|
|
15
|
+
codemie_test_harness/pytest.ini,sha256=jLrm1U5u6_biXfYGeSepKmO8wf75LlDcHiEnAfEQtOI,286
|
|
16
16
|
codemie_test_harness/tests/__init__.py,sha256=CX5mbH_1RzwetK14moYQ0KCoUBPQMGkI14Fg8tAUJ0A,782
|
|
17
17
|
codemie_test_harness/tests/assistant/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
18
|
codemie_test_harness/tests/assistant/datasource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -64,7 +64,7 @@ codemie_test_harness/tests/assistant/tools/servicenow/__init__.py,sha256=47DEQpj
|
|
|
64
64
|
codemie_test_harness/tests/assistant/tools/servicenow/test_servicenow_tools.py,sha256=aUjfZ4773WoQJjcHx3JqH5e8ckaKB-aIMO-OZWTm0Ek,888
|
|
65
65
|
codemie_test_harness/tests/assistant/tools/vcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
66
|
codemie_test_harness/tests/assistant/tools/vcs/test_assistant_with_vcs_tools.py,sha256=c9cZXxMo0YFVJLWdYt23Awy2PqTnNxp0uLLCgk8k2iQ,1143
|
|
67
|
-
codemie_test_harness/tests/conftest.py,sha256=
|
|
67
|
+
codemie_test_harness/tests/conftest.py,sha256=30SuG3L8lzloDfGG0aYgNyR7pU5WkckSaTZUny2EraY,30909
|
|
68
68
|
codemie_test_harness/tests/conversations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
69
|
codemie_test_harness/tests/conversations/test_conversations_endpoints.py,sha256=HQ2nu9lXfRNkyJhA0rzar7Rmv6pMe-te0rFYAy-X5UA,4128
|
|
70
70
|
codemie_test_harness/tests/e2e/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -79,12 +79,12 @@ codemie_test_harness/tests/integrations/project/__init__.py,sha256=47DEQpj8HBSa-
|
|
|
79
79
|
codemie_test_harness/tests/integrations/project/test_default_integrations.py,sha256=DH8zhlLN0VX7sOb6eRyNmYhXcz1Fa8EaEoPNs0ql_-8,12855
|
|
80
80
|
codemie_test_harness/tests/integrations/project/test_project_integrations.py,sha256=hrgd3DO_D2ck5b9DrTZP6i8dkCSOs6PycPppkiXJw6M,9009
|
|
81
81
|
codemie_test_harness/tests/integrations/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
|
-
codemie_test_harness/tests/integrations/user/test_default_integrations.py,sha256
|
|
82
|
+
codemie_test_harness/tests/integrations/user/test_default_integrations.py,sha256=uXz0kDFNpEPqGObEzJ2xiWF9Wspo79bXbi1H87NTNDk,12807
|
|
83
83
|
codemie_test_harness/tests/integrations/user/test_user_integrations.py,sha256=SOhRIP7JlH61LqYc37haWmeApqf0FDggl-K6W022pj4,8076
|
|
84
84
|
codemie_test_harness/tests/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
85
|
codemie_test_harness/tests/llm/assistants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
86
|
codemie_test_harness/tests/llm/assistants/test_lite_llm.py,sha256=jYtf_J7lBSmB1LmmXWjGHkMWmpcqAJ3l_IJovgYxmZM,3683
|
|
87
|
-
codemie_test_harness/tests/llm/assistants/test_llm.py,sha256=
|
|
87
|
+
codemie_test_harness/tests/llm/assistants/test_llm.py,sha256=b5HhrDkz1lwCaSZH5kdPdacmLXH_Bxnj5vO_A5ho3k8,4838
|
|
88
88
|
codemie_test_harness/tests/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
89
|
codemie_test_harness/tests/providers/test_providers_endpoints.py,sha256=iV9pxFOxTPVbk8aH8RGFjVDUCUDMUiRWcDMrvwqoTqk,8043
|
|
90
90
|
codemie_test_harness/tests/search/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
@@ -105,7 +105,7 @@ codemie_test_harness/tests/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
|
|
|
105
105
|
codemie_test_harness/tests/test_data/ado_test_plan_tools_test_data.py,sha256=Al5u4HNfrcoj-b072uEGsqUqjKqwXLGJXKQ0QeJT3PI,5778
|
|
106
106
|
codemie_test_harness/tests/test_data/ado_wiki_tools_test_data.py,sha256=xvgEja5vE0l41sP4fE0stdFLQ0M201FWynOCEcRYufE,3188
|
|
107
107
|
codemie_test_harness/tests/test_data/ado_work_item_tools_test_data.py,sha256=4Y195fG7K7FfjXXapEuTmAEz7YkBgkuO2YCQKu5YC8k,5693
|
|
108
|
-
codemie_test_harness/tests/test_data/assistant_test_data.py,sha256=
|
|
108
|
+
codemie_test_harness/tests/test_data/assistant_test_data.py,sha256=jUsLVws5Zt23W2AxDU6oXvzMNzY_8h6mCjq_wuQn-Lk,45359
|
|
109
109
|
codemie_test_harness/tests/test_data/cloud_tools_test_data.py,sha256=SWz-VTNcWteCvVupl2xksv4eEFkmtWMdRIqrZxjpFYk,6200
|
|
110
110
|
codemie_test_harness/tests/test_data/codebase_tools_test_data.py,sha256=Y2vB2yxDli7Ebadsyt2O60Vj0gXiX7nYqyWZicHqjGQ,3505
|
|
111
111
|
codemie_test_harness/tests/test_data/data_management_tools_test_data.py,sha256=K3_JBJaBW7BhgkjFSeFtqW4jcKhNOmz0EFOGeyfk4jQ,3455
|
|
@@ -391,7 +391,7 @@ codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/__init__.
|
|
|
391
391
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/servicenow/test_workflow_with_servicenow_tools.py,sha256=D835gaRbCnB4va5mi9TdA_u9StSpGXQ_fgzwW0S2pwo,1173
|
|
392
392
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
393
393
|
codemie_test_harness/tests/workflow/virtual_assistant_tools/vcs/test_workflow_with_vcs_tools.py,sha256=Se9imIiBYuJU78m1pLu0g4ZmHygKZjr6JjIWkGXTy1Q,1364
|
|
394
|
-
codemie_test_harness-0.1.
|
|
395
|
-
codemie_test_harness-0.1.
|
|
396
|
-
codemie_test_harness-0.1.
|
|
397
|
-
codemie_test_harness-0.1.
|
|
394
|
+
codemie_test_harness-0.1.198.dist-info/METADATA,sha256=LR3ro0itvXBXJ3hyBKL9eUOmCMBQEsoK9EazPHwnfXk,22968
|
|
395
|
+
codemie_test_harness-0.1.198.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
396
|
+
codemie_test_harness-0.1.198.dist-info/entry_points.txt,sha256=n98t-EOM5M1mnMl_j2X4siyeO9zr0WD9a5LF7JyElIM,73
|
|
397
|
+
codemie_test_harness-0.1.198.dist-info/RECORD,,
|
|
File without changes
|
{codemie_test_harness-0.1.197.dist-info → codemie_test_harness-0.1.198.dist-info}/entry_points.txt
RENAMED
|
File without changes
|