Files
2026-07-13 11:58:32 +08:00

41 lines
1.1 KiB
Python

import pytest
from langchain_core.tools import BaseTool, tool
from langchain_classic.tools.render import (
render_text_description,
render_text_description_and_args,
)
@tool
def search(query: str) -> str: # noqa: ARG001
"""Lookup things online."""
return "foo"
@tool
def calculator(expression: str) -> str: # noqa: ARG001
"""Do math."""
return "bar"
@pytest.fixture
def tools() -> list[BaseTool]:
return [search, calculator]
def test_render_text_description(tools: list[BaseTool]) -> None:
tool_string = render_text_description(tools)
expected_string = """search(query: str) -> str - Lookup things online.
calculator(expression: str) -> str - Do math."""
assert tool_string == expected_string
def test_render_text_description_and_args(tools: list[BaseTool]) -> None:
tool_string = render_text_description_and_args(tools)
expected_string = """search(query: str) -> str - Lookup things online., \
args: {'query': {'title': 'Query', 'type': 'string'}}
calculator(expression: str) -> str - Do math., \
args: {'expression': {'title': 'Expression', 'type': 'string'}}"""
assert tool_string == expected_string