diff --git a/tests/test_litellm/proxy/test_redis_auth_cache_flag.py b/tests/test_litellm/proxy/test_redis_auth_cache_flag.py index f824fd2f9c0..261222be9a2 100644 --- a/tests/test_litellm/proxy/test_redis_auth_cache_flag.py +++ b/tests/test_litellm/proxy/test_redis_auth_cache_flag.py @@ -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