litellm/tests/unit/test_router_block_helpers.py
devin-ai-integration[bot] c3a23fe499
refactor: expose core private helpers under public names (#44871)
* refactor: expose core private symbols with compatibility aliases

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* types: narrow core migration diagnostics

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: preserve runtime behavior in core symbol migration

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: preserve core private usage migration behavior

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: preserve private value rebinding compatibility

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: restore optional imports and cover public helpers

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test: exempt router property from call coverage

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test: align recursive detector ignore names

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: mateo <mateo@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-07 00:05:27 +00:00

57 lines
2 KiB
Python

"""Unit tests for Router block helper methods (coverage gate)."""
from litellm import Router
def _make_router(model_name: str, blocked: bool = False) -> Router:
return Router(
model_list=[
{
"model_name": model_name,
"litellm_params": {"model": "openai/gpt-4o", "api_key": "fake"},
"model_info": {"blocked": blocked},
}
]
)
class TestAreAllDeploymentsBlocked:
def test_all_blocked_returns_true(self):
router = _make_router("gpt-4o", blocked=True)
deployments = router.get_model_list(model_name="gpt-4o") or []
assert router.are_all_deployments_blocked(deployments) is True
def test_one_not_blocked_returns_false(self):
router = Router(
model_list=[
{
"model_name": "gpt-4o",
"litellm_params": {"model": "openai/gpt-4o", "api_key": "fake"},
"model_info": {"blocked": True},
},
{
"model_name": "gpt-4o",
"litellm_params": {
"model": "openai/gpt-4o-mini",
"api_key": "fake",
},
"model_info": {"blocked": False},
},
]
)
deployments = router.get_model_list(model_name="gpt-4o") or []
assert router.are_all_deployments_blocked(deployments) is False
def test_empty_list_returns_false(self):
router = _make_router("gpt-4o")
assert router.are_all_deployments_blocked([]) is False
class TestIsModelFullyBlocked:
def test_all_deployments_blocked_returns_true(self):
router = _make_router("gpt-4o", blocked=True)
assert router._is_model_fully_blocked("gpt-4o") is True
def test_unblocked_deployment_returns_false(self):
router = _make_router("gpt-4o", blocked=False)
assert router._is_model_fully_blocked("gpt-4o") is False