mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-11 22:51:28 +00:00
added fix to resolve delete API (#10845)
* added fix to resolve delete API * add get requests to ignore model and add test cases
This commit is contained in:
parent
0434ca1781
commit
16280d9fa9
2 changed files with 69 additions and 1 deletions
|
|
@ -103,7 +103,7 @@ async def route_request(
|
|||
or len(llm_router.pattern_router.patterns) > 0
|
||||
):
|
||||
return getattr(llm_router, f"{route_type}")(**data)
|
||||
elif route_type == "amoderation":
|
||||
elif route_type in ["amoderation", "aget_responses", "adelete_responses"]:
|
||||
# moderation endpoint does not require `model` parameter
|
||||
return getattr(llm_router, f"{route_type}")(**data)
|
||||
|
||||
|
|
|
|||
|
|
@ -44,3 +44,71 @@ async def test_route_request_dynamic_credentials(route_type):
|
|||
assert response == "fake_response"
|
||||
# Now assert that the dynamic method was called once with the expected kwargs.
|
||||
getattr(llm_router, route_type).assert_called_once_with(**data)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_route_request_no_model_required():
|
||||
"""Test route types that don't require model parameter"""
|
||||
test_cases = [
|
||||
"amoderation",
|
||||
"aget_responses",
|
||||
"adelete_responses"
|
||||
]
|
||||
|
||||
for route_type in test_cases:
|
||||
# Test data without model parameter
|
||||
data = {
|
||||
"input": "test input",
|
||||
"api_key": "test-key"
|
||||
}
|
||||
|
||||
llm_router = MagicMock()
|
||||
getattr(llm_router, route_type).return_value = "fake_response"
|
||||
|
||||
response = await route_request(data, llm_router, None, route_type)
|
||||
|
||||
# Verify response
|
||||
assert response == "fake_response"
|
||||
# Verify the method was called with correct parameters
|
||||
getattr(llm_router, route_type).assert_called_once_with(**data)
|
||||
|
||||
# Reset mock for next iteration
|
||||
llm_router.reset_mock()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_route_request_no_model_required_with_router_settings():
|
||||
"""Test route types that don't require model parameter with router settings"""
|
||||
test_cases = [
|
||||
"amoderation",
|
||||
"aget_responses",
|
||||
"adelete_responses"
|
||||
]
|
||||
|
||||
for route_type in test_cases:
|
||||
# Test data with model parameter (it will be ignored for these route types)
|
||||
data = {
|
||||
"input": "test input",
|
||||
"model": "test-model" # Include dummy model to avoid KeyError
|
||||
}
|
||||
|
||||
llm_router = MagicMock()
|
||||
# Set up router settings
|
||||
llm_router.router_general_settings.pass_through_all_models = False
|
||||
llm_router.default_deployment = None
|
||||
llm_router.pattern_router.patterns = []
|
||||
llm_router.model_names = [] # Empty model names list
|
||||
llm_router.get_model_ids.return_value = [] # Empty model IDs
|
||||
llm_router.model_group_alias = None # No model group alias
|
||||
|
||||
# Mock the async route call
|
||||
getattr(llm_router, route_type).return_value = "fake_response"
|
||||
|
||||
# Run the request
|
||||
response = await route_request(data, llm_router, None, route_type)
|
||||
|
||||
# Assert the mocked method was called with expected input
|
||||
assert response == "fake_response"
|
||||
getattr(llm_router, route_type).assert_called_once_with(**data)
|
||||
|
||||
# Reset the mock for the next route
|
||||
llm_router.reset_mock()
|
||||
Loading…
Add table
Reference in a new issue