mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-03 02:22:24 +00:00
* test(proxy): move auth, hooks, policy_engine and client tests into tests/unit/proxy Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * test(proxy): stub HIBP through respx by disabling the aiohttp transport Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * test(proxy): share the httpx transport fixture across proxy unit tests Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * test(proxy): restore proxy globals without a missing-value sentinel Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * test(proxy): package moved dirs and stub the login breach check at the HTTP boundary Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * test(proxy): isolate the mcp server manager per test Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Co-authored-by: yuneng <yuneng@berri.ai> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from litellm.proxy._types import ProxyErrorTypes, ProxyException
|
|
from litellm.proxy.auth.resolvers.exceptions import (
|
|
IdentityResolutionError,
|
|
KeyNotFoundError,
|
|
KeyNotInCacheError,
|
|
NoDatabaseConnectionError,
|
|
PrincipalMissingSourceKeyError,
|
|
)
|
|
|
|
|
|
def test_all_resolution_errors_share_one_base():
|
|
errors = [
|
|
NoDatabaseConnectionError(),
|
|
KeyNotInCacheError("hashed"),
|
|
KeyNotFoundError("hashed"),
|
|
PrincipalMissingSourceKeyError(),
|
|
]
|
|
assert all(isinstance(e, IdentityResolutionError) for e in errors)
|
|
|
|
|
|
def test_key_not_found_preserves_the_public_401_contract():
|
|
# The auth seam catches ProxyException and rewrites the 401 message, so a
|
|
# missing key must keep mapping to that exact contract.
|
|
error = KeyNotFoundError("hashed-token")
|
|
|
|
assert isinstance(error, ProxyException)
|
|
assert error.code == "401"
|
|
assert error.type == ProxyErrorTypes.token_not_found_in_db.value
|
|
assert error.param == "key"
|
|
|
|
|
|
def test_key_not_in_cache_names_the_token():
|
|
assert "hashed-token" in str(KeyNotInCacheError("hashed-token"))
|