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
Source
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