lucius-mcp 0.2.2__py3-none-any.whl → 0.4.0__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.4.0.dist-info/METADATA +124 -0
- {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/RECORD +53 -25
- src/client/__init__.py +16 -0
- src/client/client.py +559 -14
- src/client/exceptions.py +23 -0
- src/client/generated/README.md +29 -0
- src/client/generated/__init__.py +6 -0
- src/client/generated/api/__init__.py +3 -0
- src/client/generated/api/integration_controller_api.py +5285 -0
- src/client/generated/api/test_layer_controller_api.py +1746 -0
- src/client/generated/api/test_layer_schema_controller_api.py +1415 -0
- src/client/generated/docs/IntegrationControllerApi.md +1224 -0
- src/client/generated/docs/TestLayerControllerApi.md +407 -0
- src/client/generated/docs/TestLayerSchemaControllerApi.md +350 -0
- src/client/overridden/test_case_custom_fields_v2.py +254 -0
- src/services/__init__.py +16 -0
- src/services/custom_field_value_service.py +301 -0
- src/services/integration_service.py +205 -0
- src/services/launch_service.py +306 -0
- src/services/search_service.py +1 -1
- src/services/shared_step_service.py +34 -17
- src/services/test_case_service.py +769 -117
- src/services/test_layer_service.py +427 -0
- src/tools/__init__.py +53 -0
- src/tools/create_custom_field_value.py +38 -0
- src/tools/create_test_case.py +68 -19
- src/tools/create_test_layer.py +33 -0
- src/tools/create_test_layer_schema.py +39 -0
- src/tools/delete_custom_field_value.py +57 -0
- src/tools/delete_test_case.py +5 -4
- src/tools/delete_test_layer.py +44 -0
- src/tools/delete_test_layer_schema.py +44 -0
- src/tools/get_custom_fields.py +2 -1
- src/tools/get_test_case_custom_fields.py +34 -0
- src/tools/launches.py +198 -0
- src/tools/link_shared_step.py +18 -12
- src/tools/list_custom_field_values.py +72 -0
- src/tools/list_integrations.py +77 -0
- src/tools/list_test_layer_schemas.py +43 -0
- src/tools/list_test_layers.py +38 -0
- src/tools/search.py +9 -6
- src/tools/shared_steps.py +23 -8
- src/tools/test_layers.py +21 -0
- src/tools/unlink_shared_step.py +19 -5
- src/tools/update_custom_field_value.py +55 -0
- src/tools/update_test_case.py +113 -23
- src/tools/update_test_layer.py +44 -0
- src/tools/update_test_layer_schema.py +51 -0
- src/utils/__init__.py +4 -0
- src/utils/links.py +13 -0
- lucius_mcp-0.2.2.dist-info/METADATA +0 -290
- {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/WHEEL +0 -0
- {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/entry_points.txt +0 -0
- {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/licenses/LICENSE +0 -0
src/client/exceptions.py
CHANGED
|
@@ -42,6 +42,28 @@ class TestCaseNotFoundError(ResourceNotFoundError):
|
|
|
42
42
|
)
|
|
43
43
|
|
|
44
44
|
|
|
45
|
+
class LaunchNotFoundError(ResourceNotFoundError):
|
|
46
|
+
"""Resource not found for a specific launch."""
|
|
47
|
+
|
|
48
|
+
def __init__(
|
|
49
|
+
self,
|
|
50
|
+
launch_id: int,
|
|
51
|
+
status_code: int | None = None,
|
|
52
|
+
response_body: str | None = None,
|
|
53
|
+
) -> None:
|
|
54
|
+
suggestions = [
|
|
55
|
+
"Verify the launch ID",
|
|
56
|
+
"Use list_launches to find valid IDs",
|
|
57
|
+
"Check access to the project containing this launch",
|
|
58
|
+
]
|
|
59
|
+
super().__init__(
|
|
60
|
+
message=f"Launch ID {launch_id} not found",
|
|
61
|
+
status_code=status_code,
|
|
62
|
+
response_body=response_body,
|
|
63
|
+
suggestions=suggestions,
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
45
67
|
class AllureAuthError(AuthenticationError):
|
|
46
68
|
"""Authentication failed (401/403)."""
|
|
47
69
|
|
|
@@ -57,5 +79,6 @@ __all__ = [
|
|
|
57
79
|
"AllureNotFoundError",
|
|
58
80
|
"AllureRateLimitError",
|
|
59
81
|
"AllureValidationError",
|
|
82
|
+
"LaunchNotFoundError",
|
|
60
83
|
"TestCaseNotFoundError",
|
|
61
84
|
]
|
src/client/generated/README.md
CHANGED
|
@@ -107,6 +107,24 @@ Class | Method | HTTP request | Description
|
|
|
107
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
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
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
|
|
110
|
+
*IntegrationControllerApi* | [**create37**](src/client/generated/docs/IntegrationControllerApi.md#create37) | **POST** /api/integration |
|
|
111
|
+
*IntegrationControllerApi* | [**create_project_integration**](src/client/generated/docs/IntegrationControllerApi.md#create_project_integration) | **POST** /api/integration/project |
|
|
112
|
+
*IntegrationControllerApi* | [**delete_by_id3**](src/client/generated/docs/IntegrationControllerApi.md#delete_by_id3) | **DELETE** /api/integration/{id} |
|
|
113
|
+
*IntegrationControllerApi* | [**delete_project_integration**](src/client/generated/docs/IntegrationControllerApi.md#delete_project_integration) | **DELETE** /api/integration/{integrationId}/project/{projectId} |
|
|
114
|
+
*IntegrationControllerApi* | [**find_one_by_id**](src/client/generated/docs/IntegrationControllerApi.md#find_one_by_id) | **GET** /api/integration/{id} |
|
|
115
|
+
*IntegrationControllerApi* | [**find_project_integration_by_id**](src/client/generated/docs/IntegrationControllerApi.md#find_project_integration_by_id) | **GET** /api/integration/{integrationId}/project/{projectId} |
|
|
116
|
+
*IntegrationControllerApi* | [**get_available_integrations**](src/client/generated/docs/IntegrationControllerApi.md#get_available_integrations) | **GET** /api/integration/available |
|
|
117
|
+
*IntegrationControllerApi* | [**get_global_fields**](src/client/generated/docs/IntegrationControllerApi.md#get_global_fields) | **GET** /api/integration/globalfields |
|
|
118
|
+
*IntegrationControllerApi* | [**get_integration_projects**](src/client/generated/docs/IntegrationControllerApi.md#get_integration_projects) | **GET** /api/integration/{id}/project |
|
|
119
|
+
*IntegrationControllerApi* | [**get_integrations**](src/client/generated/docs/IntegrationControllerApi.md#get_integrations) | **GET** /api/integration |
|
|
120
|
+
*IntegrationControllerApi* | [**get_project_available_integrations**](src/client/generated/docs/IntegrationControllerApi.md#get_project_available_integrations) | **GET** /api/integration/project/{projectId}/available |
|
|
121
|
+
*IntegrationControllerApi* | [**get_project_integration_fields**](src/client/generated/docs/IntegrationControllerApi.md#get_project_integration_fields) | **GET** /api/integration/projectfields |
|
|
122
|
+
*IntegrationControllerApi* | [**get_project_integrations**](src/client/generated/docs/IntegrationControllerApi.md#get_project_integrations) | **GET** /api/integration/project/{projectId} |
|
|
123
|
+
*IntegrationControllerApi* | [**patch34**](src/client/generated/docs/IntegrationControllerApi.md#patch34) | **PATCH** /api/integration/{id} |
|
|
124
|
+
*IntegrationControllerApi* | [**patch_project_integration**](src/client/generated/docs/IntegrationControllerApi.md#patch_project_integration) | **PATCH** /api/integration/{integrationId}/project/{projectId} |
|
|
125
|
+
*IntegrationControllerApi* | [**suggest15**](src/client/generated/docs/IntegrationControllerApi.md#suggest15) | **GET** /api/integration/suggest | Suggest integrations
|
|
126
|
+
*IntegrationControllerApi* | [**validate1**](src/client/generated/docs/IntegrationControllerApi.md#validate1) | **POST** /api/integration/validate |
|
|
127
|
+
*IntegrationControllerApi* | [**validate2**](src/client/generated/docs/IntegrationControllerApi.md#validate2) | **POST** /api/integration/project/validate |
|
|
110
128
|
*LaunchControllerApi* | [**add_test_cases**](src/client/generated/docs/LaunchControllerApi.md#add_test_cases) | **POST** /api/launch/{id}/testcase/add | Add test cases to launch
|
|
111
129
|
*LaunchControllerApi* | [**add_test_plan**](src/client/generated/docs/LaunchControllerApi.md#add_test_plan) | **POST** /api/launch/{id}/testplan/add | Add test plan to launch
|
|
112
130
|
*LaunchControllerApi* | [**apply_defect_matchers**](src/client/generated/docs/LaunchControllerApi.md#apply_defect_matchers) | **POST** /api/launch/{id}/defect/apply | Apply defect matchers to launch
|
|
@@ -234,6 +252,17 @@ Class | Method | HTTP request | Description
|
|
|
234
252
|
*TestCaseSearchControllerApi* | [**validate_query1**](src/client/generated/docs/TestCaseSearchControllerApi.md#validate_query1) | **GET** /api/testcase/query/validate | Find all test cases by given AQL
|
|
235
253
|
*TestCaseTagControllerApi* | [**get_tags**](src/client/generated/docs/TestCaseTagControllerApi.md#get_tags) | **GET** /api/testcase/{testCaseId}/tag | Find tags for test case
|
|
236
254
|
*TestCaseTagControllerApi* | [**set_tags**](src/client/generated/docs/TestCaseTagControllerApi.md#set_tags) | **POST** /api/testcase/{testCaseId}/tag | Set test tags for test case
|
|
255
|
+
*TestLayerControllerApi* | [**create9**](src/client/generated/docs/TestLayerControllerApi.md#create9) | **POST** /api/testlayer |
|
|
256
|
+
*TestLayerControllerApi* | [**delete9**](src/client/generated/docs/TestLayerControllerApi.md#delete9) | **DELETE** /api/testlayer/{id} |
|
|
257
|
+
*TestLayerControllerApi* | [**find_all7**](src/client/generated/docs/TestLayerControllerApi.md#find_all7) | **GET** /api/testlayer |
|
|
258
|
+
*TestLayerControllerApi* | [**find_one8**](src/client/generated/docs/TestLayerControllerApi.md#find_one8) | **GET** /api/testlayer/{id} |
|
|
259
|
+
*TestLayerControllerApi* | [**patch9**](src/client/generated/docs/TestLayerControllerApi.md#patch9) | **PATCH** /api/testlayer/{id} |
|
|
260
|
+
*TestLayerControllerApi* | [**suggest4**](src/client/generated/docs/TestLayerControllerApi.md#suggest4) | **GET** /api/testlayer/suggest |
|
|
261
|
+
*TestLayerSchemaControllerApi* | [**create8**](src/client/generated/docs/TestLayerSchemaControllerApi.md#create8) | **POST** /api/testlayerschema | Create a new test layer schema
|
|
262
|
+
*TestLayerSchemaControllerApi* | [**delete8**](src/client/generated/docs/TestLayerSchemaControllerApi.md#delete8) | **DELETE** /api/testlayerschema/{id} | Delete test layer schema by id
|
|
263
|
+
*TestLayerSchemaControllerApi* | [**find_all6**](src/client/generated/docs/TestLayerSchemaControllerApi.md#find_all6) | **GET** /api/testlayerschema | Find all test layer schemas for given project
|
|
264
|
+
*TestLayerSchemaControllerApi* | [**find_one7**](src/client/generated/docs/TestLayerSchemaControllerApi.md#find_one7) | **GET** /api/testlayerschema/{id} | Find test layer schema by id
|
|
265
|
+
*TestLayerSchemaControllerApi* | [**patch8**](src/client/generated/docs/TestLayerSchemaControllerApi.md#patch8) | **PATCH** /api/testlayerschema/{id} | Patch test layer schema
|
|
237
266
|
|
|
238
267
|
|
|
239
268
|
## Documentation For Models
|
src/client/generated/__init__.py
CHANGED
|
@@ -24,6 +24,7 @@ __all__ = [
|
|
|
24
24
|
"CustomFieldSchemaControllerApi",
|
|
25
25
|
"CustomFieldValueControllerApi",
|
|
26
26
|
"CustomFieldValueProjectControllerApi",
|
|
27
|
+
"IntegrationControllerApi",
|
|
27
28
|
"LaunchControllerApi",
|
|
28
29
|
"LaunchSearchControllerApi",
|
|
29
30
|
"ProjectControllerApi",
|
|
@@ -39,6 +40,8 @@ __all__ = [
|
|
|
39
40
|
"TestCaseScenarioControllerApi",
|
|
40
41
|
"TestCaseSearchControllerApi",
|
|
41
42
|
"TestCaseTagControllerApi",
|
|
43
|
+
"TestLayerControllerApi",
|
|
44
|
+
"TestLayerSchemaControllerApi",
|
|
42
45
|
"ApiResponse",
|
|
43
46
|
"ApiClient",
|
|
44
47
|
"Configuration",
|
|
@@ -740,6 +743,7 @@ from src.client.generated.api.custom_field_project_controller_v2_api import Cust
|
|
|
740
743
|
from src.client.generated.api.custom_field_schema_controller_api import CustomFieldSchemaControllerApi as CustomFieldSchemaControllerApi
|
|
741
744
|
from src.client.generated.api.custom_field_value_controller_api import CustomFieldValueControllerApi as CustomFieldValueControllerApi
|
|
742
745
|
from src.client.generated.api.custom_field_value_project_controller_api import CustomFieldValueProjectControllerApi as CustomFieldValueProjectControllerApi
|
|
746
|
+
from src.client.generated.api.integration_controller_api import IntegrationControllerApi as IntegrationControllerApi
|
|
743
747
|
from src.client.generated.api.launch_controller_api import LaunchControllerApi as LaunchControllerApi
|
|
744
748
|
from src.client.generated.api.launch_search_controller_api import LaunchSearchControllerApi as LaunchSearchControllerApi
|
|
745
749
|
from src.client.generated.api.project_controller_api import ProjectControllerApi as ProjectControllerApi
|
|
@@ -755,6 +759,8 @@ from src.client.generated.api.test_case_overview_controller_api import TestCaseO
|
|
|
755
759
|
from src.client.generated.api.test_case_scenario_controller_api import TestCaseScenarioControllerApi as TestCaseScenarioControllerApi
|
|
756
760
|
from src.client.generated.api.test_case_search_controller_api import TestCaseSearchControllerApi as TestCaseSearchControllerApi
|
|
757
761
|
from src.client.generated.api.test_case_tag_controller_api import TestCaseTagControllerApi as TestCaseTagControllerApi
|
|
762
|
+
from src.client.generated.api.test_layer_controller_api import TestLayerControllerApi as TestLayerControllerApi
|
|
763
|
+
from src.client.generated.api.test_layer_schema_controller_api import TestLayerSchemaControllerApi as TestLayerSchemaControllerApi
|
|
758
764
|
|
|
759
765
|
# import ApiClient
|
|
760
766
|
from src.client.generated.api_response import ApiResponse as ApiResponse
|
|
@@ -7,6 +7,7 @@ from src.client.generated.api.custom_field_project_controller_v2_api import Cust
|
|
|
7
7
|
from src.client.generated.api.custom_field_schema_controller_api import CustomFieldSchemaControllerApi
|
|
8
8
|
from src.client.generated.api.custom_field_value_controller_api import CustomFieldValueControllerApi
|
|
9
9
|
from src.client.generated.api.custom_field_value_project_controller_api import CustomFieldValueProjectControllerApi
|
|
10
|
+
from src.client.generated.api.integration_controller_api import IntegrationControllerApi
|
|
10
11
|
from src.client.generated.api.launch_controller_api import LaunchControllerApi
|
|
11
12
|
from src.client.generated.api.launch_search_controller_api import LaunchSearchControllerApi
|
|
12
13
|
from src.client.generated.api.project_controller_api import ProjectControllerApi
|
|
@@ -22,4 +23,6 @@ from src.client.generated.api.test_case_overview_controller_api import TestCaseO
|
|
|
22
23
|
from src.client.generated.api.test_case_scenario_controller_api import TestCaseScenarioControllerApi
|
|
23
24
|
from src.client.generated.api.test_case_search_controller_api import TestCaseSearchControllerApi
|
|
24
25
|
from src.client.generated.api.test_case_tag_controller_api import TestCaseTagControllerApi
|
|
26
|
+
from src.client.generated.api.test_layer_controller_api import TestLayerControllerApi
|
|
27
|
+
from src.client.generated.api.test_layer_schema_controller_api import TestLayerSchemaControllerApi
|
|
25
28
|
|