litellm/tests
DinaAlSb 4854eebded feat(provider): add Eden AI as an OpenAI-compatible provider
Adds Eden AI (https://www.edenai.co/) as a JSON-configured provider in
litellm/llms/openai_like/providers.json, the matching LlmProviders enum
entry, the .env.example documentation block, and unit + live tests
under tests/test_litellm/llms/openai_like/.

Eden AI is an aggregator exposing 100+ underlying models from OpenAI,
Anthropic, Google, Mistral and others through a single OpenAI-shape
chat-completions endpoint. It is a clean drop-in: standard request body,
standard `choices[0].message` response, OpenAI-shape `usage`, standard
SSE streaming, and standard `tool_calls`. No Python adapter is needed.

Files:
- litellm/llms/openai_like/providers.json: register `edenai` (base URL
  https://api.edenai.run/v3, env var EDENAI_API_KEY, optional
  EDENAI_API_BASE override, max_completion_tokens -> max_tokens param
  mapping)
- litellm/types/utils.py: LlmProviders.EDENAI = "edenai"
- litellm/constants.py: edenai added to LITELLM_CHAT_PROVIDERS,
  openai_compatible_providers, and the base URL added to
  openai_compatible_endpoints (mirroring Helicone PR #17663)
- provider_endpoints_support.json: edenai entry under "providers" so
  the check_provider_folders_documented.py CI gate sees the new
  openai_like provider as documented; chat_completions and messages
  are true (the openai_like loader's default surface plus LiteLLM's
  internal Anthropic-format -> OpenAI translation); responses,
  embeddings, image_generations, audio_transcriptions, audio_speech,
  moderations, batches, rerank are false (Eden AI's API supports them
  but LiteLLM-side handlers under litellm/llms/edenai/ ship in
  follow-up PRs and will flip those flags as they land)
- README.md: row in the Supported Providers table; chat / messages
  ticked, matching what is wired through the openai_like loader today
- .env.example: document EDENAI_API_KEY and EDENAI_API_BASE next to
  the existing provider blocks
- tests/test_litellm/llms/openai_like/test_edenai.py: mocked tests
  for enum membership, JSON config shape, get_llm_provider routing,
  EDENAI_API_BASE override, Router config, mocked completion; plus a
  live integration test guarded by `pytest.skipif(not
  os.environ.get('EDENAI_API_KEY'))` that calls api.edenai.run/v3
  end-to-end and validates the response shape

Endpoints wired through this PR: /chat/completions only (via the
openai_like loader's default surface). /messages is also routed via
LiteLLM's internal Anthropic-format translation; /responses is NOT
(would require explicit `supported_endpoints` opt-in in the JSON
config). Provider-specific handlers under litellm/llms/edenai/ for
/responses, /embeddings, /image/generations, /audio/* and /moderations
ship in follow-up PRs.

Companion docs PR: BerriAI/litellm-docs adds the
docs/providers/edenai.md page that the README and
provider_endpoints_support.json link to.

Per CONTRIBUTING.md:
- scope is isolated (one provider, no drive-by changes)
- adds 1 mocked test in tests/test_litellm/ (hard requirement) plus
  a live integration test guarded by EDENAI_API_KEY presence
- passes make lint and make test-unit
- CLA: https://cla-assistant.io/BerriAI/litellm

Pattern matches Helicone (#17663) and AIHubMix (#24294) — closest
JSON-configured aggregator analogs.
2026-05-08 19:19:53 +01:00
..
agent_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
audio_tests [Test] Tests: Stop parametrizing API keys into pytest test IDs (#27249) 2026-05-05 17:21:18 -07:00
basic_proxy_startup_tests build: migrate packaging, CI, and Docker from Poetry to uv (#25007) 2026-04-09 11:46:23 -07:00
batches_tests [Fix] Batches Tests: Remove VCR Auto-Marker 2026-05-07 15:39:46 -07:00
benchmarks Add CodSpeed performance benchmarks (#23676) 2026-03-14 18:44:36 -07:00
code_coverage_tests feat(audio_transcription): add NVIDIA Riva STT provider (#27185) 2026-05-05 17:17:51 -07:00
documentation_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
enterprise Fix Prometheus custom metadata label counts (#27268) (#27271) 2026-05-05 20:04:56 -07:00
guardrails_tests test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
image_gen_tests test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
litellm Add new chat model metadata (#27313) 2026-05-06 15:15:21 -07:00
litellm-proxy-extras style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
litellm_core_utils Merge branch 'litellm_internal_staging' into litellm_staging_03_22_2026 2026-04-20 19:56:00 +05:30
litellm_utils_tests test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
llm_responses_api_testing test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
llm_translation Merge remote-tracking branch 'origin/litellm_internal_staging' into litellm_/sweet-mcclintock-2b3656 2026-05-07 13:46:53 -07:00
load_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
local_testing [Test] Tests: Stop parametrizing API keys into pytest test IDs (#27249) 2026-05-05 17:21:18 -07:00
logging_callback_tests Merge pull request #27222 from BerriAI/litellm_s3AuditParams 2026-05-07 12:49:03 -07:00
mcp_tests Merge remote-tracking branch 'origin/litellm_internal_staging' into litellm_yj_apr17 2026-04-17 17:36:40 -07:00
multi_instance_e2e_tests
ocr_tests [Fix] Tests: Reduce VCR cassette bloat and fix multipart caching 2026-05-07 11:54:19 -07:00
old_proxy_tests/tests fix: cleanup tests 2026-03-30 16:24:35 -07:00
openai_endpoints_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
otel_tests [Fix] Tests: Pick chat-completion OTEL trace by content, not recency 2026-05-04 20:35:09 -07:00
pass_through_tests chore(deps): refresh dependency locks 2026-05-04 11:36:18 -07:00
pass_through_unit_tests test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
proxy_admin_ui_tests chore(deps): refresh dependency locks 2026-05-04 11:36:18 -07:00
proxy_e2e_anthropic_messages_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
proxy_security_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
proxy_unit_tests Fix early proxy request size enforcement (#27311) 2026-05-06 12:29:11 -07:00
router_unit_tests test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
scim_tests
search_tests test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
spend_tracking_tests chore(proxy): guard sensitive public endpoints 2026-04-30 11:52:47 -07:00
store_model_in_db_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_litellm feat(provider): add Eden AI as an OpenAI-compatible provider 2026-05-08 19:19:53 +01:00
unified_google_tests test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
vector_store_tests fix: drop milvus dbName and partitionNames from MILVUS_OPTIONAL_PARAMS 2026-04-30 11:51:32 -07:00
windows_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
__init__.py
_flush_vcr_cache.py tests(vcr): isolate cassette redis to CASSETTE_REDIS_URL 2026-05-01 12:32:59 -07:00
_vcr_conftest_common.py [Fix] Tests: Reduce VCR cassette bloat and fix multipart caching 2026-05-07 11:54:19 -07:00
_vcr_redis_persister.py test: add 24hr Redis-backed VCR cache to additional test suites (#27159) 2026-05-05 15:13:31 -07:00
eval_swe_bench.py Prompt Compression - add it to the proxy (#25729) 2026-04-20 15:08:00 -07:00
gettysburg.wav
large_text.py
openai_batch_completions.jsonl
README.MD
test_budget_management.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_callbacks_on_proxy.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_config.py
test_debug_warning.py
test_default_encoding_non_root.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_end_users.py
test_entrypoint.py
test_fallbacks.py
test_gpt5_azure_temperature_support.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_health.py chore(proxy): preserve readiness compatibility 2026-04-30 12:05:09 -07:00
test_keys.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_litellm_proxy_responses_config.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_logging.conf
test_models.py test: replace test_add_and_delete_models integration test with mock 2026-03-30 21:30:57 -07:00
test_new_vector_store_endpoints.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_openai_endpoints.py
test_organizations.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_otel_thread_leak.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_passthrough_endpoints.py
test_presidio_latency.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_proxy_server_non_root.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_ratelimit.py [Fix] test_ratelimit: skip over-limit cases that race with background RPM tracking 2026-04-11 13:08:59 -07:00
test_resource_cleanup.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_service_logger_otel.py
test_spend_logs.py
test_team.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_team_logging.py test: cleanup dead tests 2026-03-28 20:49:02 -07:00
test_team_members.py
test_users.py Litellm fix update bedrock models (#24947) 2026-04-01 19:22:54 -07: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.