Home / Function/ test_convert_to_openai_tool_preserves_enum_defaults() — langchain Function Reference

test_convert_to_openai_tool_preserves_enum_defaults() — langchain Function Reference

Architecture documentation for the test_convert_to_openai_tool_preserves_enum_defaults() function in test_json_schema.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  725eddd2_6e83_42b3_b0a2_322f29e9e1f0["test_convert_to_openai_tool_preserves_enum_defaults()"]
  5d9c8eae_7a4a_0ffa_fa7c_a89825bcf1fa["test_json_schema.py"]
  725eddd2_6e83_42b3_b0a2_322f29e9e1f0 -->|defined in| 5d9c8eae_7a4a_0ffa_fa7c_a89825bcf1fa
  style 725eddd2_6e83_42b3_b0a2_322f29e9e1f0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/tests/unit_tests/utils/test_json_schema.py lines 868–906

def test_convert_to_openai_tool_preserves_enum_defaults() -> None:
    """Test that we preserve default values from enum parameters."""

    class Status(Enum):
        PENDING = "pending"
        COMPLETED = "completed"
        ERROR = "error"

    @tool(description="tool description")
    def a_test_tool(status: Status = Status.PENDING) -> str:
        return f"Status is: {status.value}"

    result = convert_to_openai_tool(a_test_tool)

    if Version(pydantic.__version__) >= Version("2.9.0"):
        assert result == {
            "function": {
                "description": "tool description",
                "name": "a_test_tool",
                "parameters": {
                    "properties": {
                        "status": {
                            "default": "pending",
                            "enum": ["pending", "completed", "error"],
                            "type": "string",
                        }
                    },
                    "type": "object",
                },
            },
            "type": "function",
        }
    else:
        # Just check the default value for older pydantic versions.
        # Older versions had more variation in the JSON schema output.
        assert (
            result["function"]["parameters"]["properties"]["status"]["default"]
            == "pending"
        )

Domain

Subdomains

Frequently Asked Questions

What does test_convert_to_openai_tool_preserves_enum_defaults() do?
test_convert_to_openai_tool_preserves_enum_defaults() is a function in the langchain codebase, defined in libs/core/tests/unit_tests/utils/test_json_schema.py.
Where is test_convert_to_openai_tool_preserves_enum_defaults() defined?
test_convert_to_openai_tool_preserves_enum_defaults() is defined in libs/core/tests/unit_tests/utils/test_json_schema.py at line 868.

Analyze Your Own Codebase

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

Try Supermodel Free