litellm/tests
Cesar Garcia d693596e87
feat(langfuse): Add support for custom masking function (#17826)
* feat(langfuse): Add support for custom masking function

Allow users to pass a custom masking function via metadata to selectively
redact sensitive data (credit cards, emails, PII) before sending to Langfuse.

Usage:
```python
def mask_pii(data):
    if isinstance(data, str):
        data = re.sub(r'\b\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}\b', '[CARD]', data)
    return data

litellm.completion(
    model="gpt-4",
    messages=[...],
    metadata={"langfuse_masking_function": mask_pii}
)
```

* fix(langfuse): Isolate masking function from other logging integrations

Extract langfuse_masking_function from metadata early in the flow and store
it in a dedicated key (_langfuse_masking_function) that only the Langfuse
logger knows to look for. This prevents the callable from leaking to other
logging integrations (Datadog, S3, etc.) which would serialize it as
"<function at 0x...>".

Changes:
- scrub_sensitive_keys_in_metadata() now extracts and stores the function
- Langfuse logger looks in the dedicated key first, falls back to metadata
- Added tests to verify isolation works correctly
2025-12-11 15:36:54 -08:00
..
agent_tests [Feat] Agent Gateway - allow adding langgraph, bedrock agent core agents (#17802) 2025-12-10 19:13:50 -08:00
audio_tests [Feat] New model/provider - Adds support for Google Cloud Chirp3 HD on /speech (#17391) 2025-12-02 15:36:23 -08:00
basic_proxy_startup_tests Fix: remove merge markdown (#17586) 2025-12-06 05:38:16 -08:00
batches_tests Fix: apply_guardrail method and improve test isolation (#17555) 2025-12-05 12:59:35 -08:00
code_coverage_tests fix: Add _delete_nested_value_custom to recursive function ignore list 2025-12-09 17:56:13 +05:30
documentation_tests
enterprise Fix: apply_guardrail method and improve test isolation (#17555) 2025-12-05 12:59:35 -08:00
guardrails_tests Fix Presidio guardrail test TypeError and license base64 decoding error (#17538) 2025-12-05 08:45:02 -08:00
image_gen_tests fix 2025-11-26 17:11:33 -08:00
litellm/llms feat(deepseek): add native support for thinking and reasoning_effort params (#17712) 2025-12-11 15:28:43 -08:00
litellm_utils_tests Fix flanky tests (#17665) 2025-12-08 12:21:26 -08:00
litellm-proxy-extras Fix: Distinguish permission errors from idempotent errors in Prisma migrations (#17064) 2025-11-24 20:41:44 -08:00
llm_responses_api_testing test_process_chunk_with_response_completed_event 2025-11-26 11:52:05 -08:00
llm_translation [Feat] New API Provider - Add Azure AI Foundry Agents on /chat/completions, /responses, /messages + Agent Gateway (#17845) 2025-12-11 15:21:28 -08:00
load_tests
local_testing test_thought_true_with_empty_text_creates_block 2025-12-06 16:00:05 -08:00
logging_callback_tests feat(langfuse): Add support for custom masking function (#17826) 2025-12-11 15:36:54 -08:00
mcp_tests Feat/mcp preserve tool metadata calltoolresult (#17561) 2025-12-05 16:15:22 -08:00
multi_instance_e2e_tests
ocr_tests
old_proxy_tests/tests
openai_endpoints_tests test_e2e_batches_files 2025-11-27 09:14:43 -08:00
otel_tests Model Armor - Logging guardrail response on llm responses (#16977) 2025-11-22 15:44:28 -08:00
pass_through_tests
pass_through_unit_tests Add cost tracking for streaming in vertex ai 2025-11-20 15:08:38 +05:30
proxy_admin_ui_tests Fixing e2e 2025-12-05 12:40:58 -08:00
proxy_security_tests
proxy_unit_tests [Fix] CI/CD – Clean Up Performance PR Changes & others (#17838) 2025-12-11 12:50:03 -08:00
router_unit_tests Merge pull request #17732 from BerriAI/litellm_videos_bugs_2 2025-12-10 07:49:55 +05:30
scim_tests
search_tests [Bug Fix]: Search APIs - error in firecrawl-search "Invalid request body" (#16943) 2025-11-21 14:56:19 -08:00
spend_tracking_tests
store_model_in_db_tests test_edit_mcp_server_redacts_credentials 2025-11-26 11:54:11 -08:00
test_litellm Fix missing content in Anthropic to OpenAI conversion (#17693) 2025-12-11 15:31:47 -08:00
unified_google_tests
vector_store_tests Add vector store support for ragflow 2025-12-03 15:29:47 +05:30
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_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_passthrough_endpoints.py
test_ratelimit.py
test_resource_cleanup.py
test_spend_logs.py
test_team_logging.py
test_team_members.py
test_team.py
test_users.py

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.