litellm/tests/unit/caching
apex-mochen 6048c84b01 fix(cache): write DualCache's redis tier with default_redis_ttl
Rebase onto latest main and address review feedback from
@lets-order-some-fries:

- DualCache resolves kwargs per tier: the in-memory tier gets
  default_in_memory_ttl, the redis tier gets default_redis_ttl and falls
  back to the in-memory default when no Redis-specific TTL is set, so the
  two tiers expire together unless an operator asks for otherwise. An
  explicit ttl= still reaches both tiers unchanged. The previous version
  mutated one shared kwargs dict, so the in-memory TTL leaked into the
  redis tier and the redis tier could not be configured independently.
- Those per-tier dict copies carry `# mutable-ok:` reasons so the
  type-discipline budget in scripts/type-discipline-budget.json stays
  within its ceiling.
- UserApiKeyCache computes effective_redis_ttl = default_redis_ttl if set
  else default_in_memory_ttl in __init__ and passes that to super().__init__
  and key_object_cache, so the auth-cache contract (Redis mirrors in-memory
  TTL when no explicit Redis TTL is configured) is preserved without
  special-casing DualCache.
- _attach_redis_usage_cache no longer passes the global
  litellm.default_redis_ttl to user_api_key_cache.attach_redis_cache; the
  auth cache already mirrors its own in-memory TTL, and overriding it here
  made the effective TTL depend on YAML key order.
- _init_cache reads default_redis_ttl without popping the caller's dict and
  filters a copy out before constructing Cache, so redis-py Redis() does not
  receive an unexpected keyword argument and DB reloads do not force a
  cache rebuild on every poll.
- Add regression tests covering per-tier TTL writes and the auth-cache
  attach path.

Refs #43187

Signed-off-by: apex-mochen <2756823972@qq.com>
2026-10-02 21:33:46 +08:00
..
__init__.py ci: move caching, proxy-extras, gateway and enterprise tests into tests/unit and run them from litellm-tests (#42902) 2026-09-24 15:49:59 -07:00
test_azure_blob_cache.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_cache_preset_key.py ci: move caching, proxy-extras, gateway and enterprise tests into tests/unit and run them from litellm-tests (#42902) 2026-09-24 15:49:59 -07:00
test_caching.py fix(params): validate stream_chunk_size once, before any provider call (#43222) 2026-09-26 23:01:20 +00:00
test_caching_handler.py fix(otel): detach post-response service spans by request phase, name redis spans by operation (#43237) 2026-09-26 10:10:12 -07:00
test_check_and_fix_namespace_none_guard.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_disk_cache.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_dual_cache.py fix(cache): write DualCache's redis tier with default_redis_ttl 2026-10-02 21:33:46 +08:00
test_embedding_router.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_evicted_client_closer.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_gcs_cache.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_in_memory_cache.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_llm_caching_handler.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_llm_client_cache_e2e.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_qdrant_semantic_cache.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_redis_batch.py perf(proxy): refresh auth management objects through the request Redis pipeline (#43776) 2026-09-29 17:56:31 -07:00
test_redis_cache.py fix(ci): stop stale CI reds, keep unit tests off the host env, retry CyberArk policy conflicts (#43294) 2026-09-26 09:25:13 -07:00
test_redis_cluster_cache.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_redis_cluster_node_isolation.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_redis_connection_pool.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_redis_semantic_cache.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_request_redis_batch_post_call.py fix(caching): write the response-cache SET to Redis at once instead of on the post-call batch (#43973) 2026-09-30 20:39:48 -07:00
test_request_redis_batch_pre_call.py perf(router): honour the cooldown read interval in the routing prefetch (#43815) 2026-09-30 00:29:20 -07:00
test_responses_stream_cache_keys.py ci: move caching, proxy-extras, gateway and enterprise tests into tests/unit and run them from litellm-tests (#42902) 2026-09-24 15:49:59 -07:00
test_s3_cache.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00
test_unit_test_caching.py ci: move caching, proxy-extras, gateway and enterprise tests into tests/unit and run them from litellm-tests (#42902) 2026-09-24 15:49:59 -07:00
test_valkey_semantic_cache.py test: move tests/test_litellm core utils, routing, responses, caching and rust_bridge into tests/unit (#43199) 2026-09-25 17:10:13 -07:00