lucius-mcp 0.1.0__py3-none-any.whl → 0.2.2__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.
- {lucius_mcp-0.1.0.dist-info → lucius_mcp-0.2.2.dist-info}/METADATA +23 -2
- {lucius_mcp-0.1.0.dist-info → lucius_mcp-0.2.2.dist-info}/RECORD +29 -14
- src/client/client.py +105 -0
- src/client/generated/README.md +65 -7
- src/client/generated/__init__.py +16 -0
- src/client/generated/api/__init__.py +8 -0
- src/client/generated/api/custom_field_controller_api.py +2617 -0
- src/client/generated/api/custom_field_project_controller_api.py +2337 -0
- src/client/generated/api/custom_field_project_controller_v2_api.py +659 -0
- src/client/generated/api/custom_field_schema_controller_api.py +1710 -0
- src/client/generated/api/custom_field_value_controller_api.py +3106 -0
- src/client/generated/api/custom_field_value_project_controller_api.py +1835 -0
- src/client/generated/api/project_controller_api.py +2986 -0
- src/client/generated/api/status_controller_api.py +1780 -0
- src/client/generated/docs/CustomFieldControllerApi.md +616 -0
- src/client/generated/docs/CustomFieldProjectControllerApi.md +554 -0
- src/client/generated/docs/CustomFieldProjectControllerV2Api.md +149 -0
- src/client/generated/docs/CustomFieldSchemaControllerApi.md +421 -0
- src/client/generated/docs/CustomFieldValueControllerApi.md +723 -0
- src/client/generated/docs/CustomFieldValueProjectControllerApi.md +430 -0
- src/client/generated/docs/LaunchControllerApi.md +2 -2
- src/client/generated/docs/ProjectControllerApi.md +717 -0
- src/client/generated/docs/StatusControllerApi.md +429 -0
- src/services/test_case_service.py +92 -33
- src/tools/__init__.py +3 -0
- src/tools/get_custom_fields.py +48 -0
- src/client/refactor-hotspots.md +0 -53
- src/client/refactor-plan.md +0 -78
- {lucius_mcp-0.1.0.dist-info → lucius_mcp-0.2.2.dist-info}/WHEEL +0 -0
- {lucius_mcp-0.1.0.dist-info → lucius_mcp-0.2.2.dist-info}/entry_points.txt +0 -0
- {lucius_mcp-0.1.0.dist-info → lucius_mcp-0.2.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lucius-mcp
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Allure TestOps MCP Server
|
|
5
5
|
Project-URL: Homepage, https://github.com/ivanostanin/lucius-mcp
|
|
6
6
|
Project-URL: Documentation, https://github.com/ivanostanin/lucius-mcp#readme
|
|
@@ -40,6 +40,7 @@ Requires-Dist: allure-pytest>=2.15.3; extra == 'dev'
|
|
|
40
40
|
Requires-Dist: faker>=40.1.2; extra == 'dev'
|
|
41
41
|
Requires-Dist: mypy>=1.19.1; extra == 'dev'
|
|
42
42
|
Requires-Dist: openapi-generator-cli>=7.19.0; extra == 'dev'
|
|
43
|
+
Requires-Dist: pre-commit>=4.0.0; extra == 'dev'
|
|
43
44
|
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
|
|
44
45
|
Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
|
|
45
46
|
Requires-Dist: pytest-mock>=3.15.1; extra == 'dev'
|
|
@@ -98,6 +99,18 @@ This project uses `uv` for dependency management.
|
|
|
98
99
|
|
|
99
100
|
## 🏃 Usage
|
|
100
101
|
|
|
102
|
+
### Add to Claude Code (MCP)
|
|
103
|
+
|
|
104
|
+
1. **Add the MCP**:
|
|
105
|
+
```bash
|
|
106
|
+
claude mcp add testops-mcp --transport stdio \
|
|
107
|
+
--env ALLURE_ENDPOINT=https://your-testops.example \
|
|
108
|
+
--env ALLURE_PROJECT_ID=123 \
|
|
109
|
+
--env ALLURE_API_TOKEN=your_token \
|
|
110
|
+
--env MCP_MODE=stdio \
|
|
111
|
+
-- uvx --from lucius-mcp start
|
|
112
|
+
```
|
|
113
|
+
|
|
101
114
|
### Running via Claude Desktop (One-Click Install)
|
|
102
115
|
|
|
103
116
|
The easiest way to use Lucius in Claude Desktop is via the `.mcpb` bundle:
|
|
@@ -115,7 +128,7 @@ For integration with MCP clients (like Claude Code) using standard input/output.
|
|
|
115
128
|
uv run start
|
|
116
129
|
```
|
|
117
130
|
|
|
118
|
-
Or
|
|
131
|
+
Or
|
|
119
132
|
|
|
120
133
|
```bash
|
|
121
134
|
MCP_MODE=stdio uv run start
|
|
@@ -267,3 +280,11 @@ uv run ruff check src/
|
|
|
267
280
|
```bash
|
|
268
281
|
uv run mypy --strict src/
|
|
269
282
|
```
|
|
283
|
+
|
|
284
|
+
## Release process
|
|
285
|
+
1. Bump version in `pyproject.toml`.
|
|
286
|
+
2. Run `uv sync --all-extras` to update dependencies.
|
|
287
|
+
3. Write release notes in `CHANGELOG.md`.
|
|
288
|
+
4. Commit changes.
|
|
289
|
+
5. Create a tag with the new version.
|
|
290
|
+
6. Push commits and tags.
|
|
@@ -2,23 +2,29 @@ src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
2
2
|
src/main.py,sha256=JPT9QfOVOj5BGGVJtq6megXZqibTIHRV3zY38jQeI5g,2580
|
|
3
3
|
src/version.py,sha256=ZAzHiNwu2X1UtwUkcHNmKrXBwRJeVvXbpdfi7wtv3DY,76
|
|
4
4
|
src/client/__init__.py,sha256=L0qijQKzYI4ONrhKHv13ET2-Z12HcbgDKN6gHJ7gAVU,1410
|
|
5
|
-
src/client/client.py,sha256=
|
|
5
|
+
src/client/client.py,sha256=P94kg3Q0NzK2gDpSKlYxxC4QRo004k3kygVYmJaq0JU,51420
|
|
6
6
|
src/client/exceptions.py,sha256=2iGpxxeiIkptvhptGFoqABI0cOLhGpIWX6c-I9Qc0yM,1498
|
|
7
|
-
src/client/
|
|
8
|
-
src/client/
|
|
9
|
-
src/client/generated/README.md,sha256=KHi-rfNeDol2syRNtQkCVNM4Q5kU2TjDH_SGvKQH_ko,75112
|
|
10
|
-
src/client/generated/__init__.py,sha256=RwJwMW7ZeCCCNfjrBM6kGA4uggTEN87hZL2oePdK8dU,96797
|
|
7
|
+
src/client/generated/README.md,sha256=u4zJ5sHRWRgZhAqtNYQGj8r8aRlMfeOJa61dA0bXwiY,85836
|
|
8
|
+
src/client/generated/__init__.py,sha256=UM-tfbMX_J3GFEtxZlxdxsnpj8mPHPJ1Dj-T-bi9vDE,98122
|
|
11
9
|
src/client/generated/api_client.py,sha256=0m1Ax05egObKEi4V-APnDamj0FZVE5Z4isSu8QPIP8Y,27910
|
|
12
10
|
src/client/generated/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
|
|
13
11
|
src/client/generated/configuration.py,sha256=nJvRx1KvWIkb7B0u-PSKRtwmm8JTFPgBz1CpKlp5Gno,17823
|
|
14
12
|
src/client/generated/exceptions.py,sha256=ZpDRfPSo4xseVbDop1tZQhxJrUweRUcuCHI-pociYmg,6516
|
|
15
13
|
src/client/generated/rest.py,sha256=U6oxD5gY8dkbGrByetRZRb8UVU7IuFldQULHDM5xrF4,6470
|
|
16
|
-
src/client/generated/api/__init__.py,sha256=
|
|
14
|
+
src/client/generated/api/__init__.py,sha256=1K0GST-qYJevppRL2VRBcmLcRA1q4pXOLseyEi6BtkY,2086
|
|
15
|
+
src/client/generated/api/custom_field_controller_api.py,sha256=Cu5yPnHHR8DH3MjY1bVF3W2QkhWQsKqSWg75rMo7BpQ,99963
|
|
16
|
+
src/client/generated/api/custom_field_project_controller_api.py,sha256=itwkdD7cLKOIx2h4k_77lItQyETzhWtiqvjSoKfOpzE,90527
|
|
17
|
+
src/client/generated/api/custom_field_project_controller_v2_api.py,sha256=iXJtWSwq87b_QOU9WB8srvZijqr9tSOfGGuNhlh2Adc,25852
|
|
18
|
+
src/client/generated/api/custom_field_schema_controller_api.py,sha256=owULmpUNYCMGVLJKv_3m6fHwCc4J55Cep0TSXgHwfok,65843
|
|
19
|
+
src/client/generated/api/custom_field_value_controller_api.py,sha256=VGCT9QAlYUB137PbSw1Qi--mtJFLkxKvCU1_UY4x6ZI,122414
|
|
20
|
+
src/client/generated/api/custom_field_value_project_controller_api.py,sha256=Re_IpphBdpMFky0I81E2mGSzatsUl4wmk4CtN873cd4,73080
|
|
17
21
|
src/client/generated/api/launch_controller_api.py,sha256=UwUVvnDMl7WKeGffa2aWJy93V6tiNeyLm5lX0maVPlA,320808
|
|
18
22
|
src/client/generated/api/launch_search_controller_api.py,sha256=b1k3YJrwJYknRpfAVv3ZNTWcObJrfzobjWjt3J1Y7vc,24638
|
|
23
|
+
src/client/generated/api/project_controller_api.py,sha256=ykBhUwbv5oRJKx0BpP-FgR_CPU01rckJAMs2eej43h0,113644
|
|
19
24
|
src/client/generated/api/shared_step_attachment_controller_api.py,sha256=5hrCM7hKCdecNsjXndAzhuM4XFHPyv0uFHTzsD6SH7Y,66441
|
|
20
25
|
src/client/generated/api/shared_step_controller_api.py,sha256=rhGRLojjhwPDnUq68hgzgA1G0WIDnYj1DsumuyYPDOs,73562
|
|
21
26
|
src/client/generated/api/shared_step_scenario_controller_api.py,sha256=vjPzQEUB5tPwgKxx09GJ87gyKg_GYEo3IYKh5epxPbQ,99381
|
|
27
|
+
src/client/generated/api/status_controller_api.py,sha256=1TFyD8SfeYNBseozMNfDGYyKTaGS7P_9T7VtOnRJnm4,67987
|
|
22
28
|
src/client/generated/api/test_case_attachment_controller_api.py,sha256=7c6CkRY6fw2MSvZfPbudFkadEhyJfX-t1MsXznXVy6o,66221
|
|
23
29
|
src/client/generated/api/test_case_bulk_controller_api.py,sha256=zcKPzvDqlG2I7U20in01iVu9Xk-kpNI8_uP5klRQ3Ec,209958
|
|
24
30
|
src/client/generated/api/test_case_controller_api.py,sha256=EceIXZW0Z71lBSW9PZw5oWBdQpaK9JMAfyvey3zyOVM,153170
|
|
@@ -83,25 +89,31 @@ src/client/generated/docs/CreateLaunchEvent.md,sha256=0WF975AF522uMoFFRQesGewSbr
|
|
|
83
89
|
src/client/generated/docs/CsvImportOptions.md,sha256=_sz8TcbG7MgRg2io2Tf54T9yTrE_XnRPI4257mHamfg,1120
|
|
84
90
|
src/client/generated/docs/CustomFieldBulkAddToProjectsDto.md,sha256=GD7QHwoBTiIEMaiCUStDD3WNM-Pmx2OWWSVREOpoQns,1193
|
|
85
91
|
src/client/generated/docs/CustomFieldBulkArchiveDto.md,sha256=EOOmKGdp9lhV6B69RN4WJQ5UaCQr0Qyfh6tIF9KXU4o,1092
|
|
92
|
+
src/client/generated/docs/CustomFieldControllerApi.md,sha256=pQ5Tf9smtsMQVvlTf10rNkMiqDFcZ1zfAM5ljeBIazo,19611
|
|
86
93
|
src/client/generated/docs/CustomFieldCreateDto.md,sha256=mCIEgJMslTkUEd2ofvKlXlwTPAbFR1sY3k04554W45E,1050
|
|
87
94
|
src/client/generated/docs/CustomFieldDto.md,sha256=j2uZqMSGKLfqyX2SItddGA-ucmzgTmclH4ZzEOlUh-g,1347
|
|
88
95
|
src/client/generated/docs/CustomFieldExportFieldMapping.md,sha256=ZQwt8DSFQbG3-8LU4Wrua50BEepbhYwvKOKGFeLxsTY,1224
|
|
89
96
|
src/client/generated/docs/CustomFieldImportFieldMapping.md,sha256=X46syUCM2Lu248oVud6wCdA_oSA1Bwnjn7NVRtjUCWs,1193
|
|
90
97
|
src/client/generated/docs/CustomFieldMergeDto.md,sha256=RPc8iGa8qIMI72jV_fgqb2m4CXBrNT5P7pyFpe6ANTs,1010
|
|
91
98
|
src/client/generated/docs/CustomFieldPatchDto.md,sha256=v_9NHMw_7vJzsmmHgdcsFdgb2vy37220amqMXJLTSEg,1098
|
|
99
|
+
src/client/generated/docs/CustomFieldProjectControllerApi.md,sha256=QSW9ccqv8O4jsY1MOkyk7T_Jt-fz59MRJxhW-DpSTIk,17860
|
|
100
|
+
src/client/generated/docs/CustomFieldProjectControllerV2Api.md,sha256=RmlTWrIXrtl_wYhFY_jraRDIQI83ZXtK9tBZ5Brx8uw,5260
|
|
92
101
|
src/client/generated/docs/CustomFieldProjectCountDto.md,sha256=Yp5C67_lBAV6NFa_6q9nGJ9ayVWjSlGOImSwf8XnKGo,1113
|
|
93
102
|
src/client/generated/docs/CustomFieldProjectDto.md,sha256=K_fzqoXArKNpImrst9y4YkQ947pjhMcwaeD5MZuwf9w,1521
|
|
94
103
|
src/client/generated/docs/CustomFieldProjectPatchDto.md,sha256=TcuUlF2F5NouXxS4NZwlz_zTvBObTtKkVHfvWkpwa7s,1174
|
|
95
104
|
src/client/generated/docs/CustomFieldProjectWithValuesDto.md,sha256=wwMErFMEgt4L-cGAAu7FiLVYaG7poksEllJXe8QKnx8,1280
|
|
96
105
|
src/client/generated/docs/CustomFieldRawDto.md,sha256=r80ZiV_KdiPa6BYhoNDo76aNxZk7GhH3AHOqwHfXUEc,1208
|
|
106
|
+
src/client/generated/docs/CustomFieldSchemaControllerApi.md,sha256=UCmjwPryGoj5LpXNu9lnW7-eQ129j1IwiQQt-5RWQcE,13489
|
|
97
107
|
src/client/generated/docs/CustomFieldSchemaCountDto.md,sha256=XW7gfjNJu88TwMIH6pVw9LKlDszskeZPij4-5dmK78E,1100
|
|
98
108
|
src/client/generated/docs/CustomFieldSchemaCreateDto.md,sha256=tzrjKYt6gh_fGNQpt3Yugssy3IznMr3BQp4FSRLbkBo,1124
|
|
99
109
|
src/client/generated/docs/CustomFieldSchemaDto.md,sha256=Gd2pDCpUOyFcUENsvnSM8rz3T_IAbwWvpinjxiGgTwE,1320
|
|
100
110
|
src/client/generated/docs/CustomFieldSchemaPatchDto.md,sha256=Am4xnZj-E_jdxiBzozYP4qAhCkAHShEArA1nfNGdmnA,1102
|
|
101
111
|
src/client/generated/docs/CustomFieldValueBulkDeleteDto.md,sha256=oT7tJUvaD65tsj9ww6ht8Vak3lckk0kbEeSdKiGvi3g,1139
|
|
102
112
|
src/client/generated/docs/CustomFieldValueBulkMergeDto.md,sha256=V9yPcG1GFlqterbq9EmRnshLcHVRUSN6J3X4o8D1WME,1227
|
|
113
|
+
src/client/generated/docs/CustomFieldValueControllerApi.md,sha256=abXseYWAo9Zp91Mxwerz8CYEqyMF9Oxuwsy5z-gbtbE,25800
|
|
103
114
|
src/client/generated/docs/CustomFieldValueDto.md,sha256=BI9o5y93Fis3OcwtrpQ3Pba1lgxafmWRyJm3CHkGZmA,1006
|
|
104
115
|
src/client/generated/docs/CustomFieldValuePatchDto.md,sha256=dLf31yMnQIGW7NJuMoDM1KAxth1QB3U2UrTY9v5HPoI,1126
|
|
116
|
+
src/client/generated/docs/CustomFieldValueProjectControllerApi.md,sha256=j_lfzntw5cZeNbf_PF9adflpKO5G2oDsYghe8v-HT8s,15461
|
|
105
117
|
src/client/generated/docs/CustomFieldValueProjectCreateDto.md,sha256=myXwtg-zTYP0Cc6nPcbhxe4WOE5bFVcI9Tt5125deaM,1279
|
|
106
118
|
src/client/generated/docs/CustomFieldValueProjectMergeByIdDto.md,sha256=lZwA3_En2kMcBfwILres6rhZ3UGOxUaiJ8g61nwTbK4,1203
|
|
107
119
|
src/client/generated/docs/CustomFieldValueProjectMergeByNameDto.md,sha256=RHJ9E52GKr9c5AXXhfnJNw0WXMY1Hho1gvNo2uOf_98,1325
|
|
@@ -248,7 +260,7 @@ src/client/generated/docs/JobTestCasesStatDto.md,sha256=ID0seyDEFbGJCR3J0Vs3wMBR
|
|
|
248
260
|
src/client/generated/docs/Launch.md,sha256=jmhi6haWcMSTdRfzjkXzKYZfsQE1f9zW4kaCfJRGY7M,903
|
|
249
261
|
src/client/generated/docs/LaunchCleanupRequest.md,sha256=fopLW9vs9Cx0hD3RXfo8Lz6FJiUc_aQSGC0pAQtW4pg,1121
|
|
250
262
|
src/client/generated/docs/LaunchCloseConfigDto.md,sha256=yC5CM_HdUzf8aCX1euIEcAbhCwog4rw6NX8vW44eNkg,1165
|
|
251
|
-
src/client/generated/docs/LaunchControllerApi.md,sha256=
|
|
263
|
+
src/client/generated/docs/LaunchControllerApi.md,sha256=jvp3b3iMt2YHz7KO3pHYX9RbhubZsbKBHB4CsmjeRR0,63429
|
|
252
264
|
src/client/generated/docs/LaunchCopyRqDto.md,sha256=PKOX9VecsLQVHiVvQXsBsDX0Vqn0dRZwsQnLaeTPaI0,1279
|
|
253
265
|
src/client/generated/docs/LaunchCreateAndUploadDto.md,sha256=SJvRv-IURSbxpE4fouUTpLlFisSOTiWG0Z0q34Y97Fc,1358
|
|
254
266
|
src/client/generated/docs/LaunchCreateDto.md,sha256=Pc6kDzVpD9n_WCQtEUS_Axj0ObF_prdghwFC0ewvRqQ,1228
|
|
@@ -408,6 +420,7 @@ src/client/generated/docs/ProjectCategoryMatcherRemoveDto.md,sha256=C0u48F3Tsz-E
|
|
|
408
420
|
src/client/generated/docs/ProjectCategoryRemoveDto.md,sha256=N1ykzxOzmy8JwNrfHsuzWbSmg1fjN5i_C28F1ZaDJJU,1033
|
|
409
421
|
src/client/generated/docs/ProjectCollaboratorAccessDto.md,sha256=RjMGlvQGd_pAqK-zm05-mldlqrE3HvVqVdX5dML7kD0,1389
|
|
410
422
|
src/client/generated/docs/ProjectCollaboratorDto.md,sha256=lqvEcSP8GECuRD41Z2SKwUtqygtUXAVuj6t8Zzv2CUY,1092
|
|
423
|
+
src/client/generated/docs/ProjectControllerApi.md,sha256=mhAy1NlEYBgTzKfTSR81O54zkNc7g4pxryftfjP07GY,22943
|
|
411
424
|
src/client/generated/docs/ProjectCreateDto.md,sha256=4P88Exbaal-ytDTzCb6tvtq_IetsHouEY89qxTMVQEU,1078
|
|
412
425
|
src/client/generated/docs/ProjectCustomFieldDto.md,sha256=LN4mUmdERGTxW6wn7YzJv-omRx3tL86wv2YI3j-j9uw,1460
|
|
413
426
|
src/client/generated/docs/ProjectDto.md,sha256=S5feyocBC0uqlBITmYHacFBpPg29TxNCM8oqRd0LvEU,1271
|
|
@@ -459,6 +472,7 @@ src/client/generated/docs/SharedStepStepDto.md,sha256=192S4qs3x4Aa714JKQdzQHJtT5
|
|
|
459
472
|
src/client/generated/docs/StatisticDto.md,sha256=760FjMwWzxecOp2ZOOqASzAgo2uTUEZFLctngDIfGqM,1105
|
|
460
473
|
src/client/generated/docs/StatisticWidgetItem.md,sha256=dtSgphosDCzDYyqX746feeS6k-c2fgm1Nc7KH3h5Wbs,1082
|
|
461
474
|
src/client/generated/docs/Status.md,sha256=qIlRjl4a_Rcim6PUb7BX3ewGjLswACr6HvBAQJ2Rs8g,320
|
|
475
|
+
src/client/generated/docs/StatusControllerApi.md,sha256=9aReEhLTqDsx97tKYiEro3LgCN6llVhrA1fuUgogQuo,13332
|
|
462
476
|
src/client/generated/docs/StatusCreateDto.md,sha256=h5xIAS3i4f7nZYk1qeb6WOgHWKrdW2zd7adCNz5FL3A,929
|
|
463
477
|
src/client/generated/docs/StatusDto.md,sha256=J5tAnZkb6aVmwwR-JzZO1owvebeDTP95CQZCJ1LoJuM,1085
|
|
464
478
|
src/client/generated/docs/StatusPatchDto.md,sha256=oY8Q8k59SmjMss9GYwtNuIjdeU3MA0yT6qvhzusE-Ks,938
|
|
@@ -1411,10 +1425,11 @@ src/services/__init__.py,sha256=Lq29htiPlTQ-_gqsZQz_E4HB13KMYs2SgMsq2m9biLU,44
|
|
|
1411
1425
|
src/services/attachment_service.py,sha256=_aQ-CAOCCDth_sWz1EyDw4W-1POQDsQ28YYCHUEXAlA,3890
|
|
1412
1426
|
src/services/search_service.py,sha256=KW8pzZ9_oo3nd9yam5Eh-Gp7eXKIQ6lKeYr3e5RHKCs,7853
|
|
1413
1427
|
src/services/shared_step_service.py,sha256=CSHLnf4ziuWG3XfeCHYokuVT-0t3T4ZwJzSs3W0cY4U,12722
|
|
1414
|
-
src/services/test_case_service.py,sha256=
|
|
1415
|
-
src/tools/__init__.py,sha256=
|
|
1428
|
+
src/services/test_case_service.py,sha256=Pkk9XWIqog22gzsoHbVWFJqAQZ_UVRIw374BfuWfAlI,43411
|
|
1429
|
+
src/tools/__init__.py,sha256=29cJwQ92Yg7FOH0lJA6VPRcj8HNJvw1vQpaSndP5894,1308
|
|
1416
1430
|
src/tools/create_test_case.py,sha256=FNRZA4EwrcnrmBikqTSmYKDKxv6AcCYcyeTDrTGAg1I,3195
|
|
1417
1431
|
src/tools/delete_test_case.py,sha256=kAWNAFN5on5jt7dCuWt4i-k8C8QKobtMMfgHizjbcH0,2058
|
|
1432
|
+
src/tools/get_custom_fields.py,sha256=VxAikxd2GayOqw09Bm2E6jBQreBVPCJBLPLJNTHI-Ic,1749
|
|
1418
1433
|
src/tools/link_shared_step.py,sha256=m6jKudXeBnS4fC47ULVjuwsBisDyPVgJHuNFjDuRrE8,3734
|
|
1419
1434
|
src/tools/search.py,sha256=XnMQjBBpqIDhNz2YxiJroAnqSV48JJmvsNlA7USb-2g,13754
|
|
1420
1435
|
src/tools/shared_steps.py,sha256=VYNEC4TBhZyTp_vZypOtsHjvXpwtf_wUx0C9bCY86p8,7193
|
|
@@ -1426,8 +1441,8 @@ src/utils/config.py,sha256=q6PUlkfgpFEzrzspbmAYcvBbFOgOIDp5RTk5XcR4IGk,1412
|
|
|
1426
1441
|
src/utils/error.py,sha256=kUsp62qbz_Q1pz6dGblGTi0rNixJOiF-Vtp19punh7Q,6347
|
|
1427
1442
|
src/utils/logger.py,sha256=8ZKOitFjwBRwDfD8wt0hfwIkS-rrrw2bjX5CaxgaZ9g,2504
|
|
1428
1443
|
src/utils/schema_hint.py,sha256=tQkoWTQG7rGbS-pA5Hve-wdb3Sx0869IOy9DCHU_3QM,1811
|
|
1429
|
-
lucius_mcp-0.
|
|
1430
|
-
lucius_mcp-0.
|
|
1431
|
-
lucius_mcp-0.
|
|
1432
|
-
lucius_mcp-0.
|
|
1433
|
-
lucius_mcp-0.
|
|
1444
|
+
lucius_mcp-0.2.2.dist-info/METADATA,sha256=9i3YovTiDFI0niZuMZ04YdEENi7BCmSCAyWLHerGSPs,9234
|
|
1445
|
+
lucius_mcp-0.2.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
1446
|
+
lucius_mcp-0.2.2.dist-info/entry_points.txt,sha256=Y-XfajjPTM5lObHWqsMYRsLrJRsILKpFGgwBcefRZvw,41
|
|
1447
|
+
lucius_mcp-0.2.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
1448
|
+
lucius_mcp-0.2.2.dist-info/RECORD,,
|
src/client/client.py
CHANGED
|
@@ -23,11 +23,16 @@ from .exceptions import (
|
|
|
23
23
|
AllureRateLimitError,
|
|
24
24
|
AllureValidationError,
|
|
25
25
|
)
|
|
26
|
+
from .generated.api.custom_field_controller_api import CustomFieldControllerApi
|
|
27
|
+
from .generated.api.custom_field_project_controller_api import CustomFieldProjectControllerApi
|
|
28
|
+
from .generated.api.custom_field_project_controller_v2_api import CustomFieldProjectControllerV2Api
|
|
29
|
+
from .generated.api.custom_field_value_project_controller_api import CustomFieldValueProjectControllerApi
|
|
26
30
|
from .generated.api.shared_step_attachment_controller_api import SharedStepAttachmentControllerApi
|
|
27
31
|
from .generated.api.shared_step_controller_api import SharedStepControllerApi
|
|
28
32
|
from .generated.api.shared_step_scenario_controller_api import SharedStepScenarioControllerApi
|
|
29
33
|
from .generated.api.test_case_attachment_controller_api import TestCaseAttachmentControllerApi
|
|
30
34
|
from .generated.api.test_case_controller_api import TestCaseControllerApi
|
|
35
|
+
from .generated.api.test_case_custom_field_controller_api import TestCaseCustomFieldControllerApi
|
|
31
36
|
from .generated.api.test_case_overview_controller_api import TestCaseOverviewControllerApi
|
|
32
37
|
from .generated.api.test_case_scenario_controller_api import TestCaseScenarioControllerApi
|
|
33
38
|
from .generated.api.test_case_search_controller_api import TestCaseSearchControllerApi
|
|
@@ -36,6 +41,7 @@ from .generated.configuration import Configuration
|
|
|
36
41
|
from .generated.exceptions import ApiException
|
|
37
42
|
from .generated.models.attachment_step_dto import AttachmentStepDto
|
|
38
43
|
from .generated.models.body_step_dto import BodyStepDto
|
|
44
|
+
from .generated.models.custom_field_project_with_values_dto import CustomFieldProjectWithValuesDto
|
|
39
45
|
from .generated.models.custom_field_value_with_cf_dto import CustomFieldValueWithCfDto
|
|
40
46
|
from .generated.models.page_shared_step_dto import PageSharedStepDto
|
|
41
47
|
from .generated.models.page_test_case_dto import PageTestCaseDto
|
|
@@ -55,6 +61,7 @@ from .generated.models.test_case_patch_v2_dto import TestCasePatchV2Dto
|
|
|
55
61
|
from .generated.models.test_case_row_dto import TestCaseRowDto
|
|
56
62
|
from .generated.models.test_case_scenario_dto import TestCaseScenarioDto
|
|
57
63
|
from .generated.models.test_case_scenario_v2_dto import TestCaseScenarioV2Dto
|
|
64
|
+
from .generated.models.test_case_tree_selection_dto import TestCaseTreeSelectionDto
|
|
58
65
|
|
|
59
66
|
|
|
60
67
|
# Subclasses to add missing fields to generated models
|
|
@@ -97,6 +104,11 @@ type ApiType = (
|
|
|
97
104
|
| SharedStepScenarioControllerApi
|
|
98
105
|
| TestCaseOverviewControllerApi
|
|
99
106
|
| TestCaseSearchControllerApi
|
|
107
|
+
| TestCaseCustomFieldControllerApi
|
|
108
|
+
| CustomFieldControllerApi
|
|
109
|
+
| CustomFieldProjectControllerApi
|
|
110
|
+
| CustomFieldProjectControllerV2Api
|
|
111
|
+
| CustomFieldValueProjectControllerApi
|
|
100
112
|
)
|
|
101
113
|
|
|
102
114
|
type NormalizedScenarioDict = dict[str, object]
|
|
@@ -110,6 +122,7 @@ __all__ = [
|
|
|
110
122
|
"AllureClient",
|
|
111
123
|
"AttachmentStepDtoWithName",
|
|
112
124
|
"BodyStepDtoWithSteps",
|
|
125
|
+
"CustomFieldProjectWithValuesDto",
|
|
113
126
|
"PageSharedStepDto",
|
|
114
127
|
"PageTestCaseDto",
|
|
115
128
|
"ScenarioStepCreateDto",
|
|
@@ -129,6 +142,7 @@ __all__ = [
|
|
|
129
142
|
"TestCaseRowDto",
|
|
130
143
|
"TestCaseScenarioDto",
|
|
131
144
|
"TestCaseScenarioV2Dto",
|
|
145
|
+
"TestCaseTreeSelectionDto",
|
|
132
146
|
]
|
|
133
147
|
|
|
134
148
|
|
|
@@ -190,6 +204,11 @@ class AllureClient:
|
|
|
190
204
|
self._shared_step_scenario_api: SharedStepScenarioControllerApi | None = None
|
|
191
205
|
self._overview_api: TestCaseOverviewControllerApi
|
|
192
206
|
self._search_api: TestCaseSearchControllerApi | None = None
|
|
207
|
+
self._test_case_custom_field_api: TestCaseCustomFieldControllerApi | None = None
|
|
208
|
+
self._custom_field_api: CustomFieldControllerApi | None = None
|
|
209
|
+
self._custom_field_project_api: CustomFieldProjectControllerApi | None = None
|
|
210
|
+
self._custom_field_project_v2_api: CustomFieldProjectControllerV2Api | None = None
|
|
211
|
+
self._custom_field_value_project_api: CustomFieldValueProjectControllerApi | None = None
|
|
193
212
|
self._is_entered = False
|
|
194
213
|
|
|
195
214
|
@classmethod
|
|
@@ -326,6 +345,11 @@ class AllureClient:
|
|
|
326
345
|
self._shared_step_scenario_api = SharedStepScenarioControllerApi(self._api_client)
|
|
327
346
|
self._overview_api = TestCaseOverviewControllerApi(self._api_client)
|
|
328
347
|
self._search_api = TestCaseSearchControllerApi(self._api_client)
|
|
348
|
+
self._test_case_custom_field_api = TestCaseCustomFieldControllerApi(self._api_client)
|
|
349
|
+
self._custom_field_api = CustomFieldControllerApi(self._api_client)
|
|
350
|
+
self._custom_field_project_api = CustomFieldProjectControllerApi(self._api_client)
|
|
351
|
+
self._custom_field_project_v2_api = CustomFieldProjectControllerV2Api(self._api_client)
|
|
352
|
+
self._custom_field_value_project_api = CustomFieldValueProjectControllerApi(self._api_client)
|
|
329
353
|
|
|
330
354
|
@property
|
|
331
355
|
def api_client(self) -> ApiClient:
|
|
@@ -439,6 +463,31 @@ class AllureClient:
|
|
|
439
463
|
self, attr_name: Literal["_search_api"], *, error_name: str | None = None
|
|
440
464
|
) -> TestCaseSearchControllerApi: ...
|
|
441
465
|
|
|
466
|
+
@overload
|
|
467
|
+
async def _get_api(
|
|
468
|
+
self, attr_name: Literal["_test_case_custom_field_api"], *, error_name: str | None = None
|
|
469
|
+
) -> TestCaseCustomFieldControllerApi: ...
|
|
470
|
+
|
|
471
|
+
@overload
|
|
472
|
+
async def _get_api(
|
|
473
|
+
self, attr_name: Literal["_custom_field_api"], *, error_name: str | None = None
|
|
474
|
+
) -> CustomFieldControllerApi: ...
|
|
475
|
+
|
|
476
|
+
@overload
|
|
477
|
+
async def _get_api(
|
|
478
|
+
self, attr_name: Literal["_custom_field_project_api"], *, error_name: str | None = None
|
|
479
|
+
) -> CustomFieldProjectControllerApi: ...
|
|
480
|
+
|
|
481
|
+
@overload
|
|
482
|
+
async def _get_api(
|
|
483
|
+
self, attr_name: Literal["_custom_field_project_v2_api"], *, error_name: str | None = None
|
|
484
|
+
) -> CustomFieldProjectControllerV2Api: ...
|
|
485
|
+
|
|
486
|
+
@overload
|
|
487
|
+
async def _get_api(
|
|
488
|
+
self, attr_name: Literal["_custom_field_value_project_api"], *, error_name: str | None = None
|
|
489
|
+
) -> CustomFieldValueProjectControllerApi: ...
|
|
490
|
+
|
|
442
491
|
async def _get_api(self, attr_name: str, *, error_name: str | None = None) -> ApiType:
|
|
443
492
|
self._require_entered()
|
|
444
493
|
await self._ensure_valid_token()
|
|
@@ -818,6 +867,62 @@ class AllureClient:
|
|
|
818
867
|
with_expected_result=with_expected_result,
|
|
819
868
|
)
|
|
820
869
|
|
|
870
|
+
async def get_custom_fields_with_values(self, project_id: int) -> list[CustomFieldProjectWithValuesDto]:
|
|
871
|
+
"""Fetch all custom fields and their allowed values for a project.
|
|
872
|
+
|
|
873
|
+
This method uses CustomFieldProjectControllerV2Api to find all custom fields
|
|
874
|
+
associated with the project and then fetches their allowed values using
|
|
875
|
+
CustomFieldValueProjectControllerApi.
|
|
876
|
+
|
|
877
|
+
Args:
|
|
878
|
+
project_id: Target project ID.
|
|
879
|
+
|
|
880
|
+
Returns:
|
|
881
|
+
List of custom field DTOs with values.
|
|
882
|
+
|
|
883
|
+
Raises:
|
|
884
|
+
AllureValidationError: If project_id is invalid.
|
|
885
|
+
AllureAuthError: If unauthorized.
|
|
886
|
+
AllureAPIError: If the server returns an error.
|
|
887
|
+
"""
|
|
888
|
+
if not isinstance(project_id, int) or project_id <= 0:
|
|
889
|
+
raise AllureValidationError("Project ID must be a positive integer")
|
|
890
|
+
|
|
891
|
+
v2_api = await self._get_api("_custom_field_project_v2_api")
|
|
892
|
+
val_api = await self._get_api("_custom_field_value_project_api")
|
|
893
|
+
|
|
894
|
+
# 1. Get all custom fields for project
|
|
895
|
+
page = await self._call_api(v2_api.find_by_project1(project_id=project_id))
|
|
896
|
+
|
|
897
|
+
results: list[CustomFieldProjectWithValuesDto] = []
|
|
898
|
+
|
|
899
|
+
from src.client.generated.models.custom_field_value_dto import CustomFieldValueDto
|
|
900
|
+
|
|
901
|
+
for cf_proj in page.content or []:
|
|
902
|
+
if not cf_proj.custom_field or cf_proj.custom_field.id is None:
|
|
903
|
+
continue
|
|
904
|
+
|
|
905
|
+
# 2. Get values for each field
|
|
906
|
+
try:
|
|
907
|
+
values_page = await self._call_api(
|
|
908
|
+
val_api.find_all22(project_id=project_id, custom_field_id=cf_proj.custom_field.id)
|
|
909
|
+
)
|
|
910
|
+
|
|
911
|
+
allowed_values = [CustomFieldValueDto(id=v.id, name=v.name) for v in values_page.content or []]
|
|
912
|
+
|
|
913
|
+
results.append(
|
|
914
|
+
CustomFieldProjectWithValuesDto(
|
|
915
|
+
custom_field=cf_proj, # Wait, CustomFieldProjectWithValuesDto expect CustomFieldProjectDto
|
|
916
|
+
values=allowed_values,
|
|
917
|
+
)
|
|
918
|
+
)
|
|
919
|
+
except AllureAPIError as e:
|
|
920
|
+
# If fetching values fails for one field, log and continue
|
|
921
|
+
logger.warning(f"Failed to fetch values for custom field {cf_proj.custom_field.name}: {e}")
|
|
922
|
+
results.append(CustomFieldProjectWithValuesDto(custom_field=cf_proj, values=[]))
|
|
923
|
+
|
|
924
|
+
return results
|
|
925
|
+
|
|
821
926
|
async def delete_scenario_step(self, step_id: int) -> None:
|
|
822
927
|
"""Delete a scenario step.
|
|
823
928
|
|
src/client/generated/README.md
CHANGED
|
@@ -5,7 +5,7 @@ The `src.client.generated` package is automatically generated by the [OpenAPI Ge
|
|
|
5
5
|
|
|
6
6
|
- API version: 25.4.1
|
|
7
7
|
- Package version: 1.0.0
|
|
8
|
-
- Generator version: 7.
|
|
8
|
+
- Generator version: 7.19.0
|
|
9
9
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
|
10
10
|
|
|
11
11
|
## Requirements.
|
|
@@ -47,15 +47,16 @@ configuration = src.client.generated.Configuration(
|
|
|
47
47
|
# Enter a context with an instance of the API client
|
|
48
48
|
async with src.client.generated.ApiClient(configuration) as api_client:
|
|
49
49
|
# Create an instance of the API class
|
|
50
|
-
api_instance = src.client.generated.
|
|
51
|
-
id = 56 # int |
|
|
52
|
-
launch_test_cases_add_dto = src.client.generated.LaunchTestCasesAddDto() # LaunchTestCasesAddDto |
|
|
50
|
+
api_instance = src.client.generated.CustomFieldControllerApi(api_client)
|
|
51
|
+
id = [56] # List[int] |
|
|
53
52
|
|
|
54
53
|
try:
|
|
55
|
-
#
|
|
56
|
-
await api_instance.
|
|
54
|
+
# Count custom fields usage in projects
|
|
55
|
+
api_response = await api_instance.count_usage(id)
|
|
56
|
+
print("The response of CustomFieldControllerApi->count_usage:\n")
|
|
57
|
+
pprint(api_response)
|
|
57
58
|
except ApiException as e:
|
|
58
|
-
print("Exception when calling
|
|
59
|
+
print("Exception when calling CustomFieldControllerApi->count_usage: %s\n" % e)
|
|
59
60
|
|
|
60
61
|
```
|
|
61
62
|
|
|
@@ -65,6 +66,47 @@ All URIs are relative to *http://localhost*
|
|
|
65
66
|
|
|
66
67
|
Class | Method | HTTP request | Description
|
|
67
68
|
------------ | ------------- | ------------- | -------------
|
|
69
|
+
*CustomFieldControllerApi* | [**count_usage**](src/client/generated/docs/CustomFieldControllerApi.md#count_usage) | **GET** /api/cf/count-usage | Count custom fields usage in projects
|
|
70
|
+
*CustomFieldControllerApi* | [**create52**](src/client/generated/docs/CustomFieldControllerApi.md#create52) | **POST** /api/cf |
|
|
71
|
+
*CustomFieldControllerApi* | [**delete43**](src/client/generated/docs/CustomFieldControllerApi.md#delete43) | **DELETE** /api/cf/{id} |
|
|
72
|
+
*CustomFieldControllerApi* | [**find_by_project**](src/client/generated/docs/CustomFieldControllerApi.md#find_by_project) | **GET** /api/cf | Deprecated. Use GET /api/project/{projectId}/cf instead
|
|
73
|
+
*CustomFieldControllerApi* | [**find_one37**](src/client/generated/docs/CustomFieldControllerApi.md#find_one37) | **GET** /api/cf/{id} |
|
|
74
|
+
*CustomFieldControllerApi* | [**merge4**](src/client/generated/docs/CustomFieldControllerApi.md#merge4) | **POST** /api/cf/merge |
|
|
75
|
+
*CustomFieldControllerApi* | [**patch48**](src/client/generated/docs/CustomFieldControllerApi.md#patch48) | **PATCH** /api/cf/{id} |
|
|
76
|
+
*CustomFieldControllerApi* | [**set_archived**](src/client/generated/docs/CustomFieldControllerApi.md#set_archived) | **POST** /api/cf/{id}/archived | Soft delete custom field
|
|
77
|
+
*CustomFieldControllerApi* | [**suggest22**](src/client/generated/docs/CustomFieldControllerApi.md#suggest22) | **GET** /api/cf/suggest |
|
|
78
|
+
*CustomFieldProjectControllerApi* | [**add2**](src/client/generated/docs/CustomFieldProjectControllerApi.md#add2) | **POST** /api/cfproject/add | Add custom field to projects
|
|
79
|
+
*CustomFieldProjectControllerApi* | [**add_to_project**](src/client/generated/docs/CustomFieldProjectControllerApi.md#add_to_project) | **POST** /api/cfproject/add-to-project | Add custom fields to project
|
|
80
|
+
*CustomFieldProjectControllerApi* | [**cf_delta1**](src/client/generated/docs/CustomFieldProjectControllerApi.md#cf_delta1) | **POST** /api/cfproject/delta | Find missing custom fields
|
|
81
|
+
*CustomFieldProjectControllerApi* | [**find_one45**](src/client/generated/docs/CustomFieldProjectControllerApi.md#find_one45) | **GET** /api/cfproject |
|
|
82
|
+
*CustomFieldProjectControllerApi* | [**find_projects_by_custom_field**](src/client/generated/docs/CustomFieldProjectControllerApi.md#find_projects_by_custom_field) | **GET** /api/cfproject/in-projects | Find projects that use specified custom field
|
|
83
|
+
*CustomFieldProjectControllerApi* | [**remove4**](src/client/generated/docs/CustomFieldProjectControllerApi.md#remove4) | **DELETE** /api/cfproject/remove | Remove custom field from project
|
|
84
|
+
*CustomFieldProjectControllerApi* | [**set_default**](src/client/generated/docs/CustomFieldProjectControllerApi.md#set_default) | **POST** /api/cfproject/default | Deprecated. Use PATCH /api/project/{projectId}/cf/{cfId} instead
|
|
85
|
+
*CustomFieldProjectControllerApi* | [**set_required**](src/client/generated/docs/CustomFieldProjectControllerApi.md#set_required) | **POST** /api/cfproject/required | Deprecated. Use PATCH /api/project/{projectId}/cf/{cfId} instead
|
|
86
|
+
*CustomFieldProjectControllerV2Api* | [**find_by_project1**](src/client/generated/docs/CustomFieldProjectControllerV2Api.md#find_by_project1) | **GET** /api/project/{projectId}/cf | Find custom fields used in specified project
|
|
87
|
+
*CustomFieldProjectControllerV2Api* | [**patch24**](src/client/generated/docs/CustomFieldProjectControllerV2Api.md#patch24) | **PATCH** /api/project/{projectId}/cf/{cfId} |
|
|
88
|
+
*CustomFieldSchemaControllerApi* | [**count_mappings**](src/client/generated/docs/CustomFieldSchemaControllerApi.md#count_mappings) | **GET** /api/cfschema/count-mappings | Count custom fields mappings
|
|
89
|
+
*CustomFieldSchemaControllerApi* | [**create51**](src/client/generated/docs/CustomFieldSchemaControllerApi.md#create51) | **POST** /api/cfschema | Create a new custom field schema
|
|
90
|
+
*CustomFieldSchemaControllerApi* | [**delete42**](src/client/generated/docs/CustomFieldSchemaControllerApi.md#delete42) | **DELETE** /api/cfschema/{id} | Delete custom field schema by id
|
|
91
|
+
*CustomFieldSchemaControllerApi* | [**find_all45**](src/client/generated/docs/CustomFieldSchemaControllerApi.md#find_all45) | **GET** /api/cfschema | Find all custom field schemas for specified project and custom field
|
|
92
|
+
*CustomFieldSchemaControllerApi* | [**find_one36**](src/client/generated/docs/CustomFieldSchemaControllerApi.md#find_one36) | **GET** /api/cfschema/{id} | Find custom field schema by id
|
|
93
|
+
*CustomFieldSchemaControllerApi* | [**patch47**](src/client/generated/docs/CustomFieldSchemaControllerApi.md#patch47) | **PATCH** /api/cfschema/{id} | Patch custom field schema
|
|
94
|
+
*CustomFieldValueControllerApi* | [**create50**](src/client/generated/docs/CustomFieldValueControllerApi.md#create50) | **POST** /api/cfv | Deprecated. Use POST /api/project/{projectId}/cfv instead
|
|
95
|
+
*CustomFieldValueControllerApi* | [**delete41**](src/client/generated/docs/CustomFieldValueControllerApi.md#delete41) | **DELETE** /api/cfv/{id} | Delete custom field value by id
|
|
96
|
+
*CustomFieldValueControllerApi* | [**find_all44**](src/client/generated/docs/CustomFieldValueControllerApi.md#find_all44) | **GET** /api/cfv | Find all custom field values
|
|
97
|
+
*CustomFieldValueControllerApi* | [**find_one35**](src/client/generated/docs/CustomFieldValueControllerApi.md#find_one35) | **GET** /api/cfv/{id} | Find custom field value by id
|
|
98
|
+
*CustomFieldValueControllerApi* | [**merge_project_fields_to_existing_global_value**](src/client/generated/docs/CustomFieldValueControllerApi.md#merge_project_fields_to_existing_global_value) | **POST** /api/cfv/merge-to/{toCfvId} | Merge project custom field values into existing global
|
|
99
|
+
*CustomFieldValueControllerApi* | [**merge_project_fields_to_new_global_value**](src/client/generated/docs/CustomFieldValueControllerApi.md#merge_project_fields_to_new_global_value) | **POST** /api/cfv/merge | Merge project custom field values into new global
|
|
100
|
+
*CustomFieldValueControllerApi* | [**patch46**](src/client/generated/docs/CustomFieldValueControllerApi.md#patch46) | **PATCH** /api/cfv/{id} | Patch custom field value
|
|
101
|
+
*CustomFieldValueControllerApi* | [**rename_custom_field_value**](src/client/generated/docs/CustomFieldValueControllerApi.md#rename_custom_field_value) | **POST** /api/cfv/{id}/rename | Deprecated. Use PUT /api/project/{projectId}/cfv/{cvfId}/name instead
|
|
102
|
+
*CustomFieldValueControllerApi* | [**suggest21**](src/client/generated/docs/CustomFieldValueControllerApi.md#suggest21) | **GET** /api/cfv/suggest | Suggest custom field values
|
|
103
|
+
*CustomFieldValueControllerApi* | [**suggest_v2**](src/client/generated/docs/CustomFieldValueControllerApi.md#suggest_v2) | **GET** /api/cfv/suggest/{projectId} | Suggest custom field values
|
|
104
|
+
*CustomFieldValueProjectControllerApi* | [**create26**](src/client/generated/docs/CustomFieldValueProjectControllerApi.md#create26) | **POST** /api/project/{projectId}/cfv | Create a new custom field value for specified project
|
|
105
|
+
*CustomFieldValueProjectControllerApi* | [**delete47**](src/client/generated/docs/CustomFieldValueProjectControllerApi.md#delete47) | **DELETE** /api/project/{projectId}/cfv/{id} | Delete specified custom field value for specified project
|
|
106
|
+
*CustomFieldValueProjectControllerApi* | [**find_all22**](src/client/generated/docs/CustomFieldValueProjectControllerApi.md#find_all22) | **GET** /api/project/{projectId}/cfv | Find all custom field values for specified project
|
|
107
|
+
*CustomFieldValueProjectControllerApi* | [**merge_custom_fields_to_existing_record**](src/client/generated/docs/CustomFieldValueProjectControllerApi.md#merge_custom_fields_to_existing_record) | **POST** /api/project/{projectId}/cfv/merge-to/{toCfvId} | Merge custom field values to existing record by id
|
|
108
|
+
*CustomFieldValueProjectControllerApi* | [**merge_custom_fields_to_new_record**](src/client/generated/docs/CustomFieldValueProjectControllerApi.md#merge_custom_fields_to_new_record) | **POST** /api/project/{projectId}/cfv/merge | Merge custom field values to new record
|
|
109
|
+
*CustomFieldValueProjectControllerApi* | [**patch23**](src/client/generated/docs/CustomFieldValueProjectControllerApi.md#patch23) | **PATCH** /api/project/{projectId}/cfv/{cfvId} | Patch specified custom field value, test results won't be affected
|
|
68
110
|
*LaunchControllerApi* | [**add_test_cases**](src/client/generated/docs/LaunchControllerApi.md#add_test_cases) | **POST** /api/launch/{id}/testcase/add | Add test cases to launch
|
|
69
111
|
*LaunchControllerApi* | [**add_test_plan**](src/client/generated/docs/LaunchControllerApi.md#add_test_plan) | **POST** /api/launch/{id}/testplan/add | Add test plan to launch
|
|
70
112
|
*LaunchControllerApi* | [**apply_defect_matchers**](src/client/generated/docs/LaunchControllerApi.md#apply_defect_matchers) | **POST** /api/launch/{id}/defect/apply | Apply defect matchers to launch
|
|
@@ -96,6 +138,16 @@ Class | Method | HTTP request | Description
|
|
|
96
138
|
*LaunchControllerApi* | [**suggest_jobs**](src/client/generated/docs/LaunchControllerApi.md#suggest_jobs) | **GET** /api/launch/{id}/job/suggest | Suggest launch jobs
|
|
97
139
|
*LaunchSearchControllerApi* | [**search2**](src/client/generated/docs/LaunchSearchControllerApi.md#search2) | **GET** /api/launch/__search | Find all launches by given AQL
|
|
98
140
|
*LaunchSearchControllerApi* | [**validate_query2**](src/client/generated/docs/LaunchSearchControllerApi.md#validate_query2) | **GET** /api/launch/query/validate | Find all launches by given AQL
|
|
141
|
+
*ProjectControllerApi* | [**calculate_stats**](src/client/generated/docs/ProjectControllerApi.md#calculate_stats) | **GET** /api/project/{id}/stats | Find project stats by id
|
|
142
|
+
*ProjectControllerApi* | [**count_test_cases_in_projects**](src/client/generated/docs/ProjectControllerApi.md#count_test_cases_in_projects) | **GET** /api/project/count-test-cases | Count test cases in projects that use specified custom field
|
|
143
|
+
*ProjectControllerApi* | [**create25**](src/client/generated/docs/ProjectControllerApi.md#create25) | **POST** /api/project | Create a new project
|
|
144
|
+
*ProjectControllerApi* | [**delete23**](src/client/generated/docs/ProjectControllerApi.md#delete23) | **DELETE** /api/project/{id} | Delete project by id
|
|
145
|
+
*ProjectControllerApi* | [**find_all21**](src/client/generated/docs/ProjectControllerApi.md#find_all21) | **GET** /api/project | Find all projects
|
|
146
|
+
*ProjectControllerApi* | [**find_by_custom_field**](src/client/generated/docs/ProjectControllerApi.md#find_by_custom_field) | **GET** /api/project/customfield | Find projects that use/do not use specified custom field
|
|
147
|
+
*ProjectControllerApi* | [**find_one19**](src/client/generated/docs/ProjectControllerApi.md#find_one19) | **GET** /api/project/{id} | Find project by id
|
|
148
|
+
*ProjectControllerApi* | [**get_suggest**](src/client/generated/docs/ProjectControllerApi.md#get_suggest) | **GET** /api/project/suggest | Suggest projects
|
|
149
|
+
*ProjectControllerApi* | [**patch25**](src/client/generated/docs/ProjectControllerApi.md#patch25) | **PATCH** /api/project/{id} | Patch project
|
|
150
|
+
*ProjectControllerApi* | [**set_favorite**](src/client/generated/docs/ProjectControllerApi.md#set_favorite) | **POST** /api/project/{id}/favorite | Mark project as favorite
|
|
99
151
|
*SharedStepAttachmentControllerApi* | [**create21**](src/client/generated/docs/SharedStepAttachmentControllerApi.md#create21) | **POST** /api/sharedstep/attachment | Upload new shared step attachments
|
|
100
152
|
*SharedStepAttachmentControllerApi* | [**delete19**](src/client/generated/docs/SharedStepAttachmentControllerApi.md#delete19) | **DELETE** /api/sharedstep/attachment/{id} | Delete shared step attachment
|
|
101
153
|
*SharedStepAttachmentControllerApi* | [**find_all17**](src/client/generated/docs/SharedStepAttachmentControllerApi.md#find_all17) | **GET** /api/sharedstep/attachment | Find attachments for shared step
|
|
@@ -118,6 +170,12 @@ Class | Method | HTTP request | Description
|
|
|
118
170
|
*SharedStepScenarioControllerApi* | [**patch_by_id1**](src/client/generated/docs/SharedStepScenarioControllerApi.md#patch_by_id1) | **PATCH** /api/sharedstep/step/{id} | Patch a specified scenario step
|
|
119
171
|
*SharedStepScenarioControllerApi* | [**set_shared_step_scenario**](src/client/generated/docs/SharedStepScenarioControllerApi.md#set_shared_step_scenario) | **POST** /api/sharedstep/{id}/scenario | Set new scenario for ss
|
|
120
172
|
*SharedStepScenarioControllerApi* | [**usage**](src/client/generated/docs/SharedStepScenarioControllerApi.md#usage) | **GET** /api/sharedstep/{id}/usage | Get testcases with usage of shared step
|
|
173
|
+
*StatusControllerApi* | [**create18**](src/client/generated/docs/StatusControllerApi.md#create18) | **POST** /api/status | Create a new status
|
|
174
|
+
*StatusControllerApi* | [**delete17**](src/client/generated/docs/StatusControllerApi.md#delete17) | **DELETE** /api/status/{id} | Delete status by id
|
|
175
|
+
*StatusControllerApi* | [**find_all15**](src/client/generated/docs/StatusControllerApi.md#find_all15) | **GET** /api/status | Find all statuses
|
|
176
|
+
*StatusControllerApi* | [**find_one14**](src/client/generated/docs/StatusControllerApi.md#find_one14) | **GET** /api/status/{id} | Find status by id
|
|
177
|
+
*StatusControllerApi* | [**patch17**](src/client/generated/docs/StatusControllerApi.md#patch17) | **PATCH** /api/status/{id} | Patch status
|
|
178
|
+
*StatusControllerApi* | [**suggest8**](src/client/generated/docs/StatusControllerApi.md#suggest8) | **GET** /api/status/suggest | Suggest statuses
|
|
121
179
|
*TestCaseAttachmentControllerApi* | [**create16**](src/client/generated/docs/TestCaseAttachmentControllerApi.md#create16) | **POST** /api/testcase/attachment | Upload new test case attachments
|
|
122
180
|
*TestCaseAttachmentControllerApi* | [**delete15**](src/client/generated/docs/TestCaseAttachmentControllerApi.md#delete15) | **DELETE** /api/testcase/attachment/{id} | Delete test case attachment
|
|
123
181
|
*TestCaseAttachmentControllerApi* | [**find_all13**](src/client/generated/docs/TestCaseAttachmentControllerApi.md#find_all13) | **GET** /api/testcase/attachment | Find attachments for test case
|
src/client/generated/__init__.py
CHANGED
|
@@ -18,11 +18,19 @@ __version__ = "1.0.0"
|
|
|
18
18
|
|
|
19
19
|
# Define package exports
|
|
20
20
|
__all__ = [
|
|
21
|
+
"CustomFieldControllerApi",
|
|
22
|
+
"CustomFieldProjectControllerApi",
|
|
23
|
+
"CustomFieldProjectControllerV2Api",
|
|
24
|
+
"CustomFieldSchemaControllerApi",
|
|
25
|
+
"CustomFieldValueControllerApi",
|
|
26
|
+
"CustomFieldValueProjectControllerApi",
|
|
21
27
|
"LaunchControllerApi",
|
|
22
28
|
"LaunchSearchControllerApi",
|
|
29
|
+
"ProjectControllerApi",
|
|
23
30
|
"SharedStepAttachmentControllerApi",
|
|
24
31
|
"SharedStepControllerApi",
|
|
25
32
|
"SharedStepScenarioControllerApi",
|
|
33
|
+
"StatusControllerApi",
|
|
26
34
|
"TestCaseAttachmentControllerApi",
|
|
27
35
|
"TestCaseBulkControllerApi",
|
|
28
36
|
"TestCaseControllerApi",
|
|
@@ -726,11 +734,19 @@ __all__ = [
|
|
|
726
734
|
]
|
|
727
735
|
|
|
728
736
|
# import apis into sdk package
|
|
737
|
+
from src.client.generated.api.custom_field_controller_api import CustomFieldControllerApi as CustomFieldControllerApi
|
|
738
|
+
from src.client.generated.api.custom_field_project_controller_api import CustomFieldProjectControllerApi as CustomFieldProjectControllerApi
|
|
739
|
+
from src.client.generated.api.custom_field_project_controller_v2_api import CustomFieldProjectControllerV2Api as CustomFieldProjectControllerV2Api
|
|
740
|
+
from src.client.generated.api.custom_field_schema_controller_api import CustomFieldSchemaControllerApi as CustomFieldSchemaControllerApi
|
|
741
|
+
from src.client.generated.api.custom_field_value_controller_api import CustomFieldValueControllerApi as CustomFieldValueControllerApi
|
|
742
|
+
from src.client.generated.api.custom_field_value_project_controller_api import CustomFieldValueProjectControllerApi as CustomFieldValueProjectControllerApi
|
|
729
743
|
from src.client.generated.api.launch_controller_api import LaunchControllerApi as LaunchControllerApi
|
|
730
744
|
from src.client.generated.api.launch_search_controller_api import LaunchSearchControllerApi as LaunchSearchControllerApi
|
|
745
|
+
from src.client.generated.api.project_controller_api import ProjectControllerApi as ProjectControllerApi
|
|
731
746
|
from src.client.generated.api.shared_step_attachment_controller_api import SharedStepAttachmentControllerApi as SharedStepAttachmentControllerApi
|
|
732
747
|
from src.client.generated.api.shared_step_controller_api import SharedStepControllerApi as SharedStepControllerApi
|
|
733
748
|
from src.client.generated.api.shared_step_scenario_controller_api import SharedStepScenarioControllerApi as SharedStepScenarioControllerApi
|
|
749
|
+
from src.client.generated.api.status_controller_api import StatusControllerApi as StatusControllerApi
|
|
734
750
|
from src.client.generated.api.test_case_attachment_controller_api import TestCaseAttachmentControllerApi as TestCaseAttachmentControllerApi
|
|
735
751
|
from src.client.generated.api.test_case_bulk_controller_api import TestCaseBulkControllerApi as TestCaseBulkControllerApi
|
|
736
752
|
from src.client.generated.api.test_case_controller_api import TestCaseControllerApi as TestCaseControllerApi
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
# flake8: noqa
|
|
2
2
|
|
|
3
3
|
# import apis into api package
|
|
4
|
+
from src.client.generated.api.custom_field_controller_api import CustomFieldControllerApi
|
|
5
|
+
from src.client.generated.api.custom_field_project_controller_api import CustomFieldProjectControllerApi
|
|
6
|
+
from src.client.generated.api.custom_field_project_controller_v2_api import CustomFieldProjectControllerV2Api
|
|
7
|
+
from src.client.generated.api.custom_field_schema_controller_api import CustomFieldSchemaControllerApi
|
|
8
|
+
from src.client.generated.api.custom_field_value_controller_api import CustomFieldValueControllerApi
|
|
9
|
+
from src.client.generated.api.custom_field_value_project_controller_api import CustomFieldValueProjectControllerApi
|
|
4
10
|
from src.client.generated.api.launch_controller_api import LaunchControllerApi
|
|
5
11
|
from src.client.generated.api.launch_search_controller_api import LaunchSearchControllerApi
|
|
12
|
+
from src.client.generated.api.project_controller_api import ProjectControllerApi
|
|
6
13
|
from src.client.generated.api.shared_step_attachment_controller_api import SharedStepAttachmentControllerApi
|
|
7
14
|
from src.client.generated.api.shared_step_controller_api import SharedStepControllerApi
|
|
8
15
|
from src.client.generated.api.shared_step_scenario_controller_api import SharedStepScenarioControllerApi
|
|
16
|
+
from src.client.generated.api.status_controller_api import StatusControllerApi
|
|
9
17
|
from src.client.generated.api.test_case_attachment_controller_api import TestCaseAttachmentControllerApi
|
|
10
18
|
from src.client.generated.api.test_case_bulk_controller_api import TestCaseBulkControllerApi
|
|
11
19
|
from src.client.generated.api.test_case_controller_api import TestCaseControllerApi
|