litellm/tests
abhijitjavelin 7842ab176e feat: replace Javelin guardrails with Highflame guardrails (Shield /v1/guard)
Rebrands the legacy Javelin guardrail integration as Highflame, with
the integration rewired to call Highflame Shield's POST /v1/guard
endpoint (the canonical guardrails API in the current platform) instead
of the defunct Javelin-era /v1/guardrails/apply path.

Rebrand:
  - litellm/proxy/guardrails/guardrail_hooks/javelin/ → highflame/
  - litellm/types/proxy/guardrails/guardrail_hooks/javelin.py →
    highflame.py (TypedDicts: HighflameGuardRequest,
    HighflameGuardResponse, per-guard assessment shapes preserved as the
    public contract).
  - tests/guardrails_tests/test_javelin_guardrails.py →
    test_highflame_guardrails.py
  - docs/my-website/docs/proxy/guardrails/highflame.md (new)
  - litellm/types/guardrails.py: SupportedGuardrailIntegrations.HIGHFLAME
    + HighflameGuardrailConfigModel registered.
  - ui/litellm-dashboard/src/components/guardrails/guardrail_info_helpers.tsx:
    Highflame UI entry (logo + name).
  - Logo assets renamed javelin.png → highflame.png in two locations.

Shield /v1/guard rewrite (the actual functional change vs the old plugin):
  - Single endpoint: f"{api_base}/v1/guard" (no per-guard path, no
    api_version path segment — Shield is unversioned at the path level;
    api_version preserved as a public config field for backward compat).
  - Request body: Shield's GuardEvent shape — {content, content_type:
    "prompt", action: "process_prompt", mode: "enforce", early_exit:
    true}, with optional session_id from request metadata.
  - Headers: existing x-highflame-apikey + new X-Product: guardrails
    (selects the Cedar policy namespace). X-Account-ID / X-Project-ID
    forwarded from metadata when available. x-highflame-application
    forwarded when configured.
  - Response: Shield's {decision, reason, audit_id, request_id, ...}
    synthesized into HighflameGuardResponse {assessments: [...]} so
    downstream LiteLLM code typed against the existing per-guard
    TypedDicts (HighflamePromptInjectionAssessment, HighflameTrustSafetyAssessment,
    etc.) keeps working unchanged. Per-guard shapes get neutral defaults
    plus request_reject + reject_prompt from Shield's deny reason.
  - 5xx from Shield → passthrough (allow + warn) per firehog's
    pattern in highflame-firehog/src/client/shield.rs:202-238. 4xx → log
    error with body, passthrough so a misconfigured guardrail doesn't
    fail-closed the LiteLLM proxy.

Public surface preserved: HighflameGuardrail class signature, all
TypedDicts in litellm.types.proxy.guardrails.guardrail_hooks.highflame,
guardrail_name config values (trustsafety, promptinjectiondetection,
lang_detector, dlp_gcp, highflame_guard), hook integration points.
Existing user configs continue to work — only the backend wire shape
changes.

Tests in tests/guardrails_tests/test_highflame_guardrails.py mock
Shield's /v1/guard backend across the deny/allow/multi-guard/metadata
scenarios. 10/10 passing.
2026-05-06 21:04:06 +05:30
..
agent_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
audio_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -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 [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
benchmarks Add CodSpeed performance benchmarks (#23676) 2026-03-14 18:44:36 -07:00
code_coverage_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
documentation_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
enterprise [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
guardrails_tests feat: replace Javelin guardrails with Highflame guardrails (Shield /v1/guard) 2026-05-06 21:04:06 +05:30
image_gen_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
litellm [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -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 [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
llm_responses_api_testing [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
llm_translation [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
load_tests style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
local_testing [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
logging_callback_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15: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 [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -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 [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
pass_through_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
pass_through_unit_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
proxy_admin_ui_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -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 [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
router_unit_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
scim_tests
search_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
spend_tracking_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -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 [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
unified_google_tests [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -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 [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
_vcr_conftest_common.py [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -07:00
_vcr_redis_persister.py [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -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 [Infra] Promote internal staging to main (#27245) 2026-05-05 16:15:03 -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.