fix: req changes

This commit is contained in:
Harshit28j 2026-02-27 13:33:34 +05:30
parent d3d11fb06e
commit a9d0e2cf91
3 changed files with 28 additions and 20 deletions

View File

@ -2599,10 +2599,7 @@ class NewProjectRequest(LiteLLM_BudgetTable):
raise ValueError(
f"tags must be a list of strings, got {type(values['tags']).__name__}"
)
for field in (
LiteLLM_ManagementEndpoint_MetadataFields
+ LiteLLM_ManagementEndpoint_MetadataFields_Premium
):
for field in LiteLLM_ManagementEndpoint_MetadataFields:
if values.get(field) is not None:
if values.get("metadata") is None:
values.update({"metadata": {}})
@ -2635,10 +2632,7 @@ class UpdateProjectRequest(LiteLLM_BudgetTable):
raise ValueError(
f"tags must be a list of strings, got {type(values['tags']).__name__}"
)
for field in (
LiteLLM_ManagementEndpoint_MetadataFields
+ LiteLLM_ManagementEndpoint_MetadataFields_Premium
):
for field in LiteLLM_ManagementEndpoint_MetadataFields:
if values.get(field) is not None:
if values.get("metadata") is None:
values.update({"metadata": {}})

View File

@ -358,6 +358,16 @@ async def new_project(
},
)
# ADD METADATA FIELDS
for field in LiteLLM_ManagementEndpoint_MetadataFields_Premium:
if getattr(data, field, None) is not None:
_set_object_metadata_field(
object_data=data,
field_name=field,
value=getattr(data, field),
)
delattr(data, field)
if prisma_client is None:
raise HTTPException(
status_code=500,
@ -473,7 +483,7 @@ async def new_project(
response_model=LiteLLM_ProjectTable,
)
@management_endpoint_wrapper
async def update_project(
async def update_project( # noqa: PLR0915
data: UpdateProjectRequest,
http_request: Request,
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
@ -543,6 +553,16 @@ async def update_project(
},
)
# ADD METADATA FIELDS
for field in LiteLLM_ManagementEndpoint_MetadataFields_Premium:
if getattr(data, field, None) is not None:
_set_object_metadata_field(
object_data=data,
field_name=field,
value=getattr(data, field),
)
delattr(data, field)
if prisma_client is None:
raise HTTPException(
status_code=500,

View File

@ -3,26 +3,20 @@ from litellm.proxy._types import NewProjectRequest, UpdateProjectRequest
def test_new_project_request_tags():
# Test tags are correctly moved to metadata["tags"]
# Test tags correctly stay top level initially
req = NewProjectRequest(
project_id="test_proj", team_id="team_1", tags=["tag1", "tag2"]
)
# After validation, tags should be inside metadata
assert req.metadata is not None
assert "tags" in req.metadata
assert req.metadata["tags"] == ["tag1", "tag2"]
assert req.tags is None # Or removed dependending on pydantic version
# tags should be top level initially
assert req.tags == ["tag1", "tag2"]
def test_update_project_request_tags():
# Test tags are correctly moved to metadata["tags"]
# Test tags correctly stay top level initially
req = UpdateProjectRequest(project_id="test_proj", tags=["new_tag"])
assert req.metadata is not None
assert "tags" in req.metadata
assert req.metadata["tags"] == ["new_tag"]
assert req.tags is None
assert req.tags == ["new_tag"]
def test_new_project_request_invalid_tags_type():