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.
Files changed (54) hide show
  1. lucius_mcp-0.4.0.dist-info/METADATA +124 -0
  2. {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/RECORD +53 -25
  3. src/client/__init__.py +16 -0
  4. src/client/client.py +559 -14
  5. src/client/exceptions.py +23 -0
  6. src/client/generated/README.md +29 -0
  7. src/client/generated/__init__.py +6 -0
  8. src/client/generated/api/__init__.py +3 -0
  9. src/client/generated/api/integration_controller_api.py +5285 -0
  10. src/client/generated/api/test_layer_controller_api.py +1746 -0
  11. src/client/generated/api/test_layer_schema_controller_api.py +1415 -0
  12. src/client/generated/docs/IntegrationControllerApi.md +1224 -0
  13. src/client/generated/docs/TestLayerControllerApi.md +407 -0
  14. src/client/generated/docs/TestLayerSchemaControllerApi.md +350 -0
  15. src/client/overridden/test_case_custom_fields_v2.py +254 -0
  16. src/services/__init__.py +16 -0
  17. src/services/custom_field_value_service.py +301 -0
  18. src/services/integration_service.py +205 -0
  19. src/services/launch_service.py +306 -0
  20. src/services/search_service.py +1 -1
  21. src/services/shared_step_service.py +34 -17
  22. src/services/test_case_service.py +769 -117
  23. src/services/test_layer_service.py +427 -0
  24. src/tools/__init__.py +53 -0
  25. src/tools/create_custom_field_value.py +38 -0
  26. src/tools/create_test_case.py +68 -19
  27. src/tools/create_test_layer.py +33 -0
  28. src/tools/create_test_layer_schema.py +39 -0
  29. src/tools/delete_custom_field_value.py +57 -0
  30. src/tools/delete_test_case.py +5 -4
  31. src/tools/delete_test_layer.py +44 -0
  32. src/tools/delete_test_layer_schema.py +44 -0
  33. src/tools/get_custom_fields.py +2 -1
  34. src/tools/get_test_case_custom_fields.py +34 -0
  35. src/tools/launches.py +198 -0
  36. src/tools/link_shared_step.py +18 -12
  37. src/tools/list_custom_field_values.py +72 -0
  38. src/tools/list_integrations.py +77 -0
  39. src/tools/list_test_layer_schemas.py +43 -0
  40. src/tools/list_test_layers.py +38 -0
  41. src/tools/search.py +9 -6
  42. src/tools/shared_steps.py +23 -8
  43. src/tools/test_layers.py +21 -0
  44. src/tools/unlink_shared_step.py +19 -5
  45. src/tools/update_custom_field_value.py +55 -0
  46. src/tools/update_test_case.py +113 -23
  47. src/tools/update_test_layer.py +44 -0
  48. src/tools/update_test_layer_schema.py +51 -0
  49. src/utils/__init__.py +4 -0
  50. src/utils/links.py +13 -0
  51. lucius_mcp-0.2.2.dist-info/METADATA +0 -290
  52. {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/WHEEL +0 -0
  53. {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/entry_points.txt +0 -0
  54. {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
  ]
@@ -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
@@ -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