mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-14 23:21:35 +00:00
fix failing test
Some checks failed
Unit Tests: Caching (Redis) / caching-redis (push) Has been cancelled
Unit Tests: Proxy DB Operations / assert-shard-coverage (push) Has been cancelled
Unit Tests: Security / security (push) Has been cancelled
Unit Tests: Proxy DB Operations / custom-logging (push) Has been cancelled
Unit Tests: Proxy DB Operations / logging-misc (push) Has been cancelled
Unit Tests: Proxy DB Operations / auth-checks (push) Has been cancelled
Unit Tests: Proxy DB Operations / budgets (push) Has been cancelled
Unit Tests: Proxy DB Operations / db-and-spend (push) Has been cancelled
Unit Tests: Proxy DB Operations / endpoints-and-responses (push) Has been cancelled
Unit Tests: Proxy DB Operations / guardrails-hooks (push) Has been cancelled
Unit Tests: Proxy DB Operations / jwt-and-keys (push) Has been cancelled
Unit Tests: Proxy DB Operations / key-generation (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-runtime (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-server-core (push) Has been cancelled
Unit Tests: Proxy DB Operations / schema-migration (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-utils (push) Has been cancelled
Some checks failed
Unit Tests: Caching (Redis) / caching-redis (push) Has been cancelled
Unit Tests: Proxy DB Operations / assert-shard-coverage (push) Has been cancelled
Unit Tests: Security / security (push) Has been cancelled
Unit Tests: Proxy DB Operations / custom-logging (push) Has been cancelled
Unit Tests: Proxy DB Operations / logging-misc (push) Has been cancelled
Unit Tests: Proxy DB Operations / auth-checks (push) Has been cancelled
Unit Tests: Proxy DB Operations / budgets (push) Has been cancelled
Unit Tests: Proxy DB Operations / db-and-spend (push) Has been cancelled
Unit Tests: Proxy DB Operations / endpoints-and-responses (push) Has been cancelled
Unit Tests: Proxy DB Operations / guardrails-hooks (push) Has been cancelled
Unit Tests: Proxy DB Operations / jwt-and-keys (push) Has been cancelled
Unit Tests: Proxy DB Operations / key-generation (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-runtime (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-server-core (push) Has been cancelled
Unit Tests: Proxy DB Operations / schema-migration (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-utils (push) Has been cancelled
This commit is contained in:
parent
b3c6566ee0
commit
f08a8534ab
1 changed files with 15 additions and 12 deletions
|
|
@ -1,5 +1,5 @@
|
|||
"""
|
||||
Tests for the enable_redis_auth_cache general_settings flag.
|
||||
Tests for the enable_redis_auth_cache litellm_settings flag.
|
||||
|
||||
Verifies that _init_cache attaches Redis to user_api_key_cache only when
|
||||
the flag is explicitly set to True, and leaves it in-memory-only otherwise.
|
||||
|
|
@ -33,14 +33,16 @@ class _FakeRedisCache(RedisCache):
|
|||
|
||||
|
||||
@contextmanager
|
||||
def _patched_init_cache(general_settings: dict, cache_params: dict):
|
||||
def _patched_init_cache(litellm_settings: dict, cache_params: dict):
|
||||
"""
|
||||
Context manager that:
|
||||
1. Replaces the module-level globals with fresh DualCache instances.
|
||||
2. Patches ``litellm.Cache`` (locally imported inside _init_cache) so
|
||||
it returns a fake cache whose ``.cache`` attribute is a
|
||||
_FakeRedisCache (passes the isinstance guard in _init_cache).
|
||||
3. Yields (user_api_key_cache, spend_counter_cache) after calling
|
||||
3. Extracts enable_redis_auth_cache from litellm_settings and passes it
|
||||
as the second argument to _init_cache (matching production behaviour).
|
||||
4. Yields (user_api_key_cache, spend_counter_cache) after calling
|
||||
_init_cache, then restores everything.
|
||||
"""
|
||||
fake_redis = _FakeRedisCache()
|
||||
|
|
@ -51,8 +53,9 @@ def _patched_init_cache(general_settings: dict, cache_params: dict):
|
|||
fresh_user_cache = DualCache()
|
||||
fresh_spend_cache = DualCache()
|
||||
|
||||
enable_redis_auth_cache = litellm_settings.get("enable_redis_auth_cache", False)
|
||||
|
||||
with (
|
||||
patch.object(ps, "general_settings", general_settings),
|
||||
patch.object(ps, "user_api_key_cache", fresh_user_cache),
|
||||
patch.object(ps, "spend_counter_cache", fresh_spend_cache),
|
||||
patch.object(ps, "llm_router", None),
|
||||
|
|
@ -60,7 +63,7 @@ def _patched_init_cache(general_settings: dict, cache_params: dict):
|
|||
patch("litellm.Cache", return_value=mock_litellm_cache),
|
||||
):
|
||||
litellm.cache = None
|
||||
ps.ProxyConfig()._init_cache(cache_params)
|
||||
ps.ProxyConfig()._init_cache(cache_params, enable_redis_auth_cache)
|
||||
yield fresh_user_cache, fresh_spend_cache
|
||||
|
||||
|
||||
|
|
@ -73,7 +76,7 @@ class TestRedisAuthCacheFlag:
|
|||
def test_flag_true_attaches_redis_to_user_api_key_cache(self):
|
||||
"""When enable_redis_auth_cache=True, user_api_key_cache.redis_cache must be set."""
|
||||
with _patched_init_cache(
|
||||
general_settings={"enable_redis_auth_cache": True},
|
||||
litellm_settings={"enable_redis_auth_cache": True},
|
||||
cache_params={"type": "redis", "host": "localhost", "port": 6379},
|
||||
) as (user_cache, _):
|
||||
assert user_cache.redis_cache is not None, (
|
||||
|
|
@ -84,7 +87,7 @@ class TestRedisAuthCacheFlag:
|
|||
def test_flag_false_leaves_user_api_key_cache_in_memory_only(self):
|
||||
"""When enable_redis_auth_cache=False, user_api_key_cache must stay in-memory."""
|
||||
with _patched_init_cache(
|
||||
general_settings={"enable_redis_auth_cache": False},
|
||||
litellm_settings={"enable_redis_auth_cache": False},
|
||||
cache_params={"type": "redis", "host": "localhost", "port": 6379},
|
||||
) as (user_cache, _):
|
||||
assert user_cache.redis_cache is None, (
|
||||
|
|
@ -95,24 +98,24 @@ class TestRedisAuthCacheFlag:
|
|||
def test_flag_absent_leaves_user_api_key_cache_in_memory_only(self):
|
||||
"""When enable_redis_auth_cache is not set at all, default is in-memory-only."""
|
||||
with _patched_init_cache(
|
||||
general_settings={},
|
||||
litellm_settings={},
|
||||
cache_params={"type": "redis", "host": "localhost", "port": 6379},
|
||||
) as (user_cache, _):
|
||||
assert user_cache.redis_cache is None, (
|
||||
"user_api_key_cache must remain in-memory-only when "
|
||||
"enable_redis_auth_cache is absent from general_settings"
|
||||
"enable_redis_auth_cache is absent from litellm_settings"
|
||||
)
|
||||
|
||||
def test_spend_counter_cache_always_gets_redis_regardless_of_flag(self):
|
||||
"""spend_counter_cache must receive Redis regardless of the auth-cache flag."""
|
||||
for flag_value in (True, False, None):
|
||||
gs = (
|
||||
ls = (
|
||||
{"enable_redis_auth_cache": flag_value}
|
||||
if flag_value is not None
|
||||
else {}
|
||||
)
|
||||
with _patched_init_cache(
|
||||
general_settings=gs,
|
||||
litellm_settings=ls,
|
||||
cache_params={"type": "redis", "host": "localhost", "port": 6379},
|
||||
) as (_, spend_cache):
|
||||
assert spend_cache.redis_cache is not None, (
|
||||
|
|
@ -123,7 +126,7 @@ class TestRedisAuthCacheFlag:
|
|||
def test_flag_false_spend_gets_redis_but_user_cache_does_not(self):
|
||||
"""Explicit False: spend cache wired, auth cache left in-memory."""
|
||||
with _patched_init_cache(
|
||||
general_settings={"enable_redis_auth_cache": False},
|
||||
litellm_settings={"enable_redis_auth_cache": False},
|
||||
cache_params={"type": "redis", "host": "localhost", "port": 6379},
|
||||
) as (user_cache, spend_cache):
|
||||
assert spend_cache.redis_cache is not None
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue