forked from phoenix/litellm-mirror
test(test_proxy_utils.py): add testing for db config update logic
This commit is contained in:
parent
a37fa817a2
commit
333bd0a962
2 changed files with 46 additions and 6 deletions
|
@ -2392,11 +2392,6 @@ class ProxyConfig:
|
||||||
for response in responses:
|
for response in responses:
|
||||||
if response is not None:
|
if response is not None:
|
||||||
param_name = getattr(response, "param_name", None)
|
param_name = getattr(response, "param_name", None)
|
||||||
verbose_proxy_logger.info(f"loading {param_name} settings from db")
|
|
||||||
if param_name == "litellm_settings":
|
|
||||||
verbose_proxy_logger.info(
|
|
||||||
f"litellm_settings: {response.param_value}"
|
|
||||||
)
|
|
||||||
param_value = getattr(response, "param_value", None)
|
param_value = getattr(response, "param_value", None)
|
||||||
if param_name is not None and param_value is not None:
|
if param_name is not None and param_value is not None:
|
||||||
# check if param_name is already in the config
|
# check if param_name is already in the config
|
||||||
|
|
|
@ -10,7 +10,7 @@ sys.path.insert(
|
||||||
0, os.path.abspath("../..")
|
0, os.path.abspath("../..")
|
||||||
) # Adds the parent directory to the system path
|
) # Adds the parent directory to the system path
|
||||||
import litellm
|
import litellm
|
||||||
|
from unittest.mock import MagicMock, patch, AsyncMock
|
||||||
|
|
||||||
from litellm.proxy._types import LitellmUserRoles, UserAPIKeyAuth
|
from litellm.proxy._types import LitellmUserRoles, UserAPIKeyAuth
|
||||||
from litellm.proxy.auth.auth_utils import is_request_body_safe
|
from litellm.proxy.auth.auth_utils import is_request_body_safe
|
||||||
|
@ -465,3 +465,48 @@ def test_update_internal_user_params():
|
||||||
updated_data_json["budget_duration"]
|
updated_data_json["budget_duration"]
|
||||||
== litellm.default_internal_user_params["budget_duration"]
|
== litellm.default_internal_user_params["budget_duration"]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_proxy_config_update_from_db():
|
||||||
|
from litellm.proxy.proxy_server import ProxyConfig
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
proxy_config = ProxyConfig()
|
||||||
|
|
||||||
|
pc = AsyncMock()
|
||||||
|
|
||||||
|
test_config = {
|
||||||
|
"litellm_settings": {
|
||||||
|
"callbacks": ["prometheus", "otel"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ReturnValue(BaseModel):
|
||||||
|
param_name: str
|
||||||
|
param_value: dict
|
||||||
|
|
||||||
|
with patch.object(
|
||||||
|
pc,
|
||||||
|
"get_generic_data",
|
||||||
|
new=AsyncMock(
|
||||||
|
return_value=ReturnValue(
|
||||||
|
param_name="litellm_settings",
|
||||||
|
param_value={
|
||||||
|
"success_callback": "langfuse",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
),
|
||||||
|
):
|
||||||
|
new_config = await proxy_config._update_config_from_db(
|
||||||
|
prisma_client=pc,
|
||||||
|
config=test_config,
|
||||||
|
store_model_in_db=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
assert new_config == {
|
||||||
|
"litellm_settings": {
|
||||||
|
"callbacks": ["prometheus", "otel"],
|
||||||
|
"success_callback": "langfuse",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue