litellm/tests/test_litellm
xuan07t2 f3f1acd338 fix(vertex_ai): separate Tool objects for each tool type per API spec
Fix Vertex AI API error: "tools[0].tool_type: one_of 'tool_type' has more
than one initialized field"

The Vertex AI API requires each Tool object to contain exactly one type
of tool (e.g., FunctionDeclaration, GoogleSearch, CodeExecution).
Previously, all tool types were combined into a single Tool object,
causing INVALID_ARGUMENT errors when using multiple tools simultaneously.

This change creates separate Tool objects for each tool type:
- Function declarations in one Tool
- Google Search in its own Tool
- Code Execution in its own Tool
- etc.

Ref: https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1beta1/Tool

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 08:48:35 +07:00
..
a2a_protocol [Feat] A2A Gateway - allow adding Azure Foundry Agents on UI (#17909) 2025-12-12 16:38:04 -08:00
caching
completion_extras fix(responses-api): use list format with input_text for tool results (#18257) 2025-12-20 13:46:14 +05:30
containers [Fix] Containers API - Allow using LIST, Create Containers using custom-llm-provider (#17740) 2025-12-09 17:00:35 -08:00
enterprise Tests 2025-12-17 16:07:01 -08:00
experimental_mcp_client
google_genai Rename: gemini-3-flash-preview 2025-12-17 21:48:15 +05:30
images fix(image_edit): add drop_params support and fix Vertex AI config (#18077) 2025-12-17 11:28:34 +05:30
integrations feat: Log actual executed event type in guardrail logging 2025-12-27 07:20:24 +09:00
interactions [Feat] Interactions API - allow using all litellm providers (interactions -> responses api bridge) (#18373) 2025-12-23 22:30:22 +05:30
litellm_core_utils Merge pull request #18283 from lucasrothman/fix/gemini-context-window-error 2025-12-23 11:40:50 +05:30
llms fix(vertex_ai): separate Tool objects for each tool type per API spec 2025-12-31 08:48:35 +07:00
passthrough
proxy Merge pull request #18502 from BerriAI/litellm_key_list_user_object 2025-12-29 15:02:38 -08:00
responses Fix CI: Revert security scan changes and add GitGuardian ignore rules (#18358) 2025-12-22 17:03:53 -08:00
router_strategy
router_utils [Feat] New Logging Integration - Azure Sentinel Logger (#18146) 2025-12-18 02:04:49 +05:30
secret_managers
types
vector_stores
__init__.py
conftest.py
log.txt
readme.md
test_acompletion_session_reuse_e2e.py
test_add_deployment_no_master_key.py
test_aembedding_session_reuse_e2e.py
test_azure_video_router.py
test_claude_haiku_4_5_config.py
test_constants.py
test_container_router.py
test_cost_calculation_log_level.py
test_cost_calculator.py [Feat] AI Gateway - Add support for Platform Fee / Margins (#18427) 2025-12-25 11:07:27 +05:30
test_exception_mapping_request_attribute.py
test_filter_out_litellm_params.py
test_groq_streaming_encoding.py
test_lazy_imports.py feat: lazy load GuardrailItem following existing patterns (#18072) 2025-12-16 11:48:36 -08:00
test_logging.py
test_lowest_latency_zero_tokens.py
test_main.py
test_nested_drop_params.py feat: Replace jsonpath-ng with custom minimal parser for additional_drop_params 2025-12-09 17:30:30 +05:30
test_redis.py
test_responses_id_security.py
test_router_google_genai.py
test_router.py [Feat] Guardrails Load Balancing - Allow Platform admins to load balance between guardrails (#18181) 2025-12-19 00:08:03 +05:30
test_shared_session_integration.py
test_system_message_format_bug.py
test_utils.py Merge pull request #18062 from Chesars/fix/groq-deprecated-models 2025-12-23 12:06:27 +05:30
test_uuid_helper.py
test_video_generation.py fix: respect videos content db creds 2025-12-10 23:00:01 +05:30

Testing for litellm/

This directory 1:1 maps the the litellm/ directory, and can only contain mocked tests.

The point of this is to:

  1. Increase test coverage of litellm/
  2. Make it easy for contributors to add tests for the litellm/ package and easily run tests without needing LLM API keys.

File name conventions

  • litellm/proxy/test_caching_routes.py maps to litellm/proxy/caching_routes.py
  • test_<filename>.py maps to litellm/<filename>.py