Home / Function/ test_tool_args_schema_default_values() — langchain Function Reference

test_tool_args_schema_default_values() — langchain Function Reference

Architecture documentation for the test_tool_args_schema_default_values() function in test_tools.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  392904ea_6a60_eb70_1d65_a6af9ac4c2fc["test_tool_args_schema_default_values()"]
  8e7836ae_e72c_f670_72a5_4ca6d46e3555["test_tools.py"]
  392904ea_6a60_eb70_1d65_a6af9ac4c2fc -->|defined in| 8e7836ae_e72c_f670_72a5_4ca6d46e3555
  style 392904ea_6a60_eb70_1d65_a6af9ac4c2fc fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/tests/unit_tests/test_tools.py lines 3508–3543

def test_tool_args_schema_default_values() -> None:
    """Test that Pydantic default values from `args_schema` are applied.

    When a tool has an `args_schema` with default values, those defaults
    should be passed to the tool function when the caller omits them.
    """

    class SearchArgs(BaseModel):
        """Schema for search tool arguments."""

        query: str = Field(..., description="The search query")
        page: int = Field(default=1, description="Page number")
        size: int = Field(default=10, description="Results per page")

    @tool("search", args_schema=SearchArgs)
    def search_tool(query: str, page: int, size: int) -> str:
        """Perform a search with pagination.

        Args:
            query: The search query.
            page: Page number.
            size: Results per page.
        """
        return f"query={query}, page={page}, size={size}"

    # Invoke with only required argument - defaults should be applied
    result = search_tool.invoke({"query": "test"})
    assert result == "query=test, page=1, size=10"

    # Invoke with partial defaults - mix of provided and default values
    result = search_tool.invoke({"query": "test", "page": 5})
    assert result == "query=test, page=5, size=10"

    # Invoke with all arguments explicitly provided
    result = search_tool.invoke({"query": "test", "page": 3, "size": 20})
    assert result == "query=test, page=3, size=20"

Domain

Subdomains

Frequently Asked Questions

What does test_tool_args_schema_default_values() do?
test_tool_args_schema_default_values() is a function in the langchain codebase, defined in libs/core/tests/unit_tests/test_tools.py.
Where is test_tool_args_schema_default_values() defined?
test_tool_args_schema_default_values() is defined in libs/core/tests/unit_tests/test_tools.py at line 3508.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free