This commit is contained in:
jiujiu 2026-10-17 08:01:46 -07:00 • committed by GitHub
commit 9a7aa40d20
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 21 additions and 1 deletions

View file

@ -1448,7 +1448,7 @@ class Router:
self.validate_fallbacks(fallback_param=_fallbacks)
### set fallbacks
self.fallbacks = _fallbacks
self.fallbacks = _fallbacks[:] if _fallbacks is not None else None
if default_fallbacks is not None or litellm.default_fallbacks is not None:
_fallbacks = default_fallbacks or litellm.default_fallbacks

View file

@ -1646,6 +1646,26 @@ def test_has_default_fallbacks(model_list, has_default_fallbacks, expected_resul
assert router._has_default_fallbacks() is expected_result
def test_default_fallbacks_do_not_mutate_input_fallbacks() -> None:
fallbacks: Final[list[dict[str, list[str]]]] = [{"primary": ["secondary"]}]
first_router: Final = Router(model_list=[], fallbacks=fallbacks, default_fallbacks=["first-default"])
second_router: Final = Router(model_list=[], fallbacks=fallbacks, default_fallbacks=["second-default"])
try:
assert fallbacks == [{"primary": ["secondary"]}]
assert first_router.fallbacks == [
{"primary": ["secondary"]},
{"*": ["first-default"]},
]
assert second_router.fallbacks == [
{"primary": ["secondary"]},
{"*": ["second-default"]},
]
finally:
first_router.discard()
second_router.discard()
def test_add_optional_pre_call_checks(model_list):
router = Router(model_list=model_list)