test_tool_args_schema_none_default() — langchain Function Reference
Architecture documentation for the test_tool_args_schema_none_default() function in test_tools.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 72eed6d8_5fce_4220_9c84_e66aca632e90["test_tool_args_schema_none_default()"] 8e7836ae_e72c_f670_72a5_4ca6d46e3555["test_tools.py"] 72eed6d8_5fce_4220_9c84_e66aca632e90 -->|defined in| 8e7836ae_e72c_f670_72a5_4ca6d46e3555 style 72eed6d8_5fce_4220_9c84_e66aca632e90 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/tests/unit_tests/test_tools.py lines 3570–3605
def test_tool_args_schema_none_default() -> None:
"""Test that explicit `None` defaults are handled correctly.
When a field has `Field(default=None)`, that `None` value should be passed
to the tool function, not omitted from the arguments.
"""
class FilterArgs(BaseModel):
"""Schema for filter tool arguments."""
query: str = Field(..., description="The search query")
category: str | None = Field(default=None, description="Optional category")
tag: str | None = Field(default=None, description="Optional tag filter")
@tool("filter_search", args_schema=FilterArgs)
def filter_tool(query: str, category: str | None, tag: str | None) -> str:
"""Search with optional filters.
Args:
query: The search query.
category: Optional category filter.
tag: Optional tag filter.
"""
return f"query={query}, category={category}, tag={tag}"
# Invoke with only required argument - None defaults should be applied
result = filter_tool.invoke({"query": "test"})
assert result == "query=test, category=None, tag=None"
# Invoke with one optional provided
result = filter_tool.invoke({"query": "test", "category": "books"})
assert result == "query=test, category=books, tag=None"
# Invoke with all arguments
result = filter_tool.invoke({"query": "test", "category": "books", "tag": "new"})
assert result == "query=test, category=books, tag=new"
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does test_tool_args_schema_none_default() do?
test_tool_args_schema_none_default() is a function in the langchain codebase, defined in libs/core/tests/unit_tests/test_tools.py.
Where is test_tool_args_schema_none_default() defined?
test_tool_args_schema_none_default() is defined in libs/core/tests/unit_tests/test_tools.py at line 3570.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free