litellm/tests
Krish Dholakia 03ca98123f
Agents health checks (#23044)
* feat: add health check toggle to agents page

Backend:
- Add health_check query parameter to GET /v1/agents endpoint
- When health_check=true, performs concurrent GET requests to each agent's
  URL and filters out agents with unreachable URLs (5s timeout)
- Agents returning HTTP <500 are considered healthy; 5xx and connection
  errors mark agents as unhealthy

UI:
- Add Health Check toggle (Switch) to agents panel header
- Toggle triggers re-fetch with health_check=true, filtering the agent list
- Icon color changes (green/gray) to indicate toggle state
- Tooltip explains behavior: 'only agents with reachable URLs are shown'

Networking:
- Update getAgentsList to accept optional healthCheck boolean parameter

Tests:
- Backend: 9 new tests covering health check filtering, _check_agent_url_health
  helper (no URL, 200, 404, 500, connection error cases)
- UI: 3 new tests verifying toggle renders, initial fetch without health check,
  and fetch with health check after toggle click

Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>

* fix: fix greptile comment re: security issue

* fix: fix based on greptile feedback

* fix: align health check tests with implementation

- Rename test_should_return_unhealthy_when_no_url to
  test_should_return_healthy_when_no_url (implementation returns
  healthy=True for agents without a URL)
- Patch get_async_httpx_client instead of httpx.AsyncClient so mocks
  actually intercept the HTTP calls made by _check_agent_url_health
- Remove unnecessary __aenter__/__aexit__ context-manager mocks

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: undo _experimental/out renames from cherry-pick

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update litellm/proxy/agent_endpoints/endpoints.py

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-07 18:32:47 -08:00
..
agent_tests [Release Fix] (#22411) 2026-02-28 09:46:35 -08:00
audio_tests
basic_proxy_startup_tests CircleCI test stability (#23055) 2026-03-07 15:19:39 -08:00
batches_tests Merge pull request #22625 from BerriAI/litellm_azure_ai_finetune 2026-03-03 19:42:17 +05:30
code_coverage_tests Merge pull request #22752 from BerriAI/litellm_search_api_add 2026-03-04 18:29:10 +05:30
documentation_tests fix failing tests 2026-02-21 15:48:26 -08:00
enterprise feat: allow multiple calls from tags 2026-03-07 11:24:18 +05:30
guardrails_tests fix: bump litellm-proxy-extras to 0.4.50 and fix 3 failing tests (#22417) 2026-02-28 10:20:03 -08:00
image_gen_tests fix(tests): generate square PNG in image_url fixture for DALL-E 2 variation test (#23073) 2026-03-07 16:58:27 -08:00
litellm [Fix] Constrain feature_name to Literal, deduplicate runtime flags, fix silent test swallowing 2026-03-05 15:42:17 -08:00
litellm_core_utils
litellm_utils_tests Merge pull request #20688 from BerriAI/litellm_budget_tier_enforcement_for_keys 2026-03-06 20:44:58 -08:00
litellm-proxy-extras
llm_responses_api_testing Fix anthropic responses 2026-02-20 17:30:42 -08:00
llm_translation fix(test): update openrouter image generation assertion for gemini-2.5-flash-image (#23070) 2026-03-07 16:52:04 -08:00
load_tests
local_testing fix(tests): fix repeating chunk and audio usage streaming tests (#23061) 2026-03-07 16:18:51 -08:00
logging_callback_tests CircleCI test stability (#23055) 2026-03-07 15:19:39 -08:00
mcp_tests CircleCI test stability (#23055) 2026-03-07 15:19:39 -08:00
multi_instance_e2e_tests
ocr_tests
old_proxy_tests/tests
openai_endpoints_tests test(responses): add end-to-end test for responses API WebSocket mode 2026-03-02 17:24:39 +05:30
otel_tests
pass_through_tests fix(pass_through): inject cost into Anthropic streaming chunks + fix SSE parsing in tests (#23078) 2026-03-07 17:27:51 -08:00
pass_through_unit_tests [Release Fix] (#22411) 2026-02-28 09:46:35 -08:00
proxy_admin_ui_tests Fix CVEs: bump tar/minimatch/pypdf + harden Docker SBOM patching (#23082) 2026-03-07 18:31:27 -08:00
proxy_e2e_anthropic_messages_tests fix(ci): image variation openai sdk 2.24.0 compat + swap bedrock nova-premier to nova-pro (#23066) 2026-03-07 16:41:54 -08:00
proxy_e2e_azure_batches_tests Add tenacity to e2e Azure batch CI and revert importorskip 2026-03-04 11:45:14 -03:00
proxy_security_tests
proxy_unit_tests CircleCI test stability (#23055) 2026-03-07 15:19:39 -08:00
router_unit_tests [Release Fix] (#22411) 2026-02-28 09:46:35 -08:00
scim_tests
search_tests Add doc and tests for google search api 2026-03-04 13:55:43 +05:30
spend_tracking_tests
store_model_in_db_tests
test_litellm Agents health checks (#23044) 2026-03-07 18:32:47 -08:00
unified_google_tests
vector_store_tests
windows_tests
__init__.py
gettysburg.wav
large_text.py
openai_batch_completions.jsonl
README.MD
test_budget_management.py
test_callbacks_on_proxy.py
test_config.py
test_debug_warning.py
test_default_encoding_non_root.py
test_end_users.py
test_entrypoint.py
test_fallbacks.py
test_gpt5_azure_temperature_support.py
test_health.py
test_keys.py
test_litellm_proxy_responses_config.py
test_logging.conf
test_models.py
test_openai_endpoints.py
test_organizations.py
test_otel_thread_leak.py
test_passthrough_endpoints.py
test_presidio_latency.py
test_proxy_server_non_root.py
test_ratelimit.py
test_resource_cleanup.py
test_service_logger_otel.py
test_spend_logs.py
test_team_logging.py
test_team_members.py
test_team.py fix(test): skip 'projects' field in team update assertion (#21777) 2026-02-21 10:24:53 -08:00
test_users.py fix(tests): update deprecated Anthropic model in test_user_model_access (#21826) 2026-02-21 14:18:24 -08:00

In total litellm runs 1000+ tests

[02/20/2025] Update:

To make it easier to contribute and map what behavior is tested,

we've started mapping the litellm directory in tests/test_litellm

This folder can only run mock tests.