mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-19 21:33:51 +00:00
standard-tests: root docstrings (#28595)
This commit is contained in:
parent
925ca75ca5
commit
b7c2029e84
@ -9,6 +9,10 @@ from langchain_tests.base import BaseStandardTests
|
|||||||
|
|
||||||
|
|
||||||
class RetrieversIntegrationTests(BaseStandardTests):
|
class RetrieversIntegrationTests(BaseStandardTests):
|
||||||
|
"""
|
||||||
|
Base class for retrievers integration tests.
|
||||||
|
"""
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def retriever_constructor(self) -> Type[BaseRetriever]: ...
|
def retriever_constructor(self) -> Type[BaseRetriever]: ...
|
||||||
|
@ -5,9 +5,21 @@ from langchain_tests.unit_tests.tools import ToolsTests
|
|||||||
|
|
||||||
|
|
||||||
class ToolsIntegrationTests(ToolsTests):
|
class ToolsIntegrationTests(ToolsTests):
|
||||||
|
"""
|
||||||
|
Base class for tools integration tests.
|
||||||
|
"""
|
||||||
|
|
||||||
def test_invoke_matches_output_schema(self, tool: BaseTool) -> None:
|
def test_invoke_matches_output_schema(self, tool: BaseTool) -> None:
|
||||||
"""
|
"""
|
||||||
If invoked with a ToolCall, the tool should return a valid ToolMessage content.
|
If invoked with a ToolCall, the tool should return a valid ToolMessage content.
|
||||||
|
|
||||||
|
If you have followed the `custom tool guide <https://python.langchain.com/docs/how_to/custom_tools/>`_,
|
||||||
|
this test should always pass because ToolCall inputs are handled by the
|
||||||
|
:class:`langchain_core.tools.BaseTool` class.
|
||||||
|
|
||||||
|
If you have not followed this guide, you should ensure that your tool's
|
||||||
|
`invoke` method returns a valid ToolMessage content when it receives
|
||||||
|
a dict representing a ToolCall as input (as opposed to distinct args).
|
||||||
"""
|
"""
|
||||||
tool_call = ToolCall(
|
tool_call = ToolCall(
|
||||||
name=tool.name,
|
name=tool.name,
|
||||||
@ -36,6 +48,8 @@ class ToolsIntegrationTests(ToolsTests):
|
|||||||
async def test_async_invoke_matches_output_schema(self, tool: BaseTool) -> None:
|
async def test_async_invoke_matches_output_schema(self, tool: BaseTool) -> None:
|
||||||
"""
|
"""
|
||||||
If ainvoked with a ToolCall, the tool should return a valid ToolMessage content.
|
If ainvoked with a ToolCall, the tool should return a valid ToolMessage content.
|
||||||
|
|
||||||
|
For debugging tips, see :meth:`test_invoke_matches_output_schema`.
|
||||||
"""
|
"""
|
||||||
tool_call = ToolCall(
|
tool_call = ToolCall(
|
||||||
name=tool.name,
|
name=tool.name,
|
||||||
@ -65,12 +79,20 @@ class ToolsIntegrationTests(ToolsTests):
|
|||||||
"""
|
"""
|
||||||
If invoked without a ToolCall, the tool can return anything
|
If invoked without a ToolCall, the tool can return anything
|
||||||
but it shouldn't throw an error
|
but it shouldn't throw an error
|
||||||
|
|
||||||
|
If this test fails, your tool may not be handling the input you defined
|
||||||
|
in `tool_invoke_params_example` correctly, and it's throwing an error.
|
||||||
|
|
||||||
|
This test doesn't have any checks. It's just to ensure that the tool
|
||||||
|
doesn't throw an error when invoked with a dictionary of kwargs.
|
||||||
"""
|
"""
|
||||||
tool.invoke(self.tool_invoke_params_example)
|
tool.invoke(self.tool_invoke_params_example)
|
||||||
|
|
||||||
async def test_async_invoke_no_tool_call(self, tool: BaseTool) -> None:
|
async def test_async_invoke_no_tool_call(self, tool: BaseTool) -> None:
|
||||||
"""
|
"""
|
||||||
If invoked without a ToolCall, the tool can return anything
|
If ainvoked without a ToolCall, the tool can return anything
|
||||||
but it shouldn't throw an error
|
but it shouldn't throw an error
|
||||||
|
|
||||||
|
For debugging tips, see :meth:`test_invoke_no_tool_call`.
|
||||||
"""
|
"""
|
||||||
await tool.ainvoke(self.tool_invoke_params_example)
|
await tool.ainvoke(self.tool_invoke_params_example)
|
||||||
|
@ -15,7 +15,7 @@ EMBEDDING_SIZE = 6
|
|||||||
|
|
||||||
|
|
||||||
class VectorStoreIntegrationTests(BaseStandardTests):
|
class VectorStoreIntegrationTests(BaseStandardTests):
|
||||||
"""Test suite for checking the read-write API of a vector store.
|
"""Base class for checking the read-write API of a vector store.
|
||||||
|
|
||||||
Implementers should subclass this test suite and provide a fixture
|
Implementers should subclass this test suite and provide a fixture
|
||||||
that returns an empty vector store for each test.
|
that returns an empty vector store for each test.
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
"""
|
|
||||||
.. autosummary::
|
|
||||||
:exclude-members: ToolsTests
|
|
||||||
"""
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
from abc import abstractmethod
|
from abc import abstractmethod
|
||||||
from typing import Tuple, Type, Union
|
from typing import Tuple, Type, Union
|
||||||
@ -64,6 +59,10 @@ class ToolsTests(BaseStandardTests):
|
|||||||
|
|
||||||
|
|
||||||
class ToolsUnitTests(ToolsTests):
|
class ToolsUnitTests(ToolsTests):
|
||||||
|
"""
|
||||||
|
Base class for tools unit tests.
|
||||||
|
"""
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def init_from_env_params(self) -> Tuple[dict, dict, dict]:
|
def init_from_env_params(self) -> Tuple[dict, dict, dict]:
|
||||||
"""Return env vars, init args, and expected instance attrs for initializing
|
"""Return env vars, init args, and expected instance attrs for initializing
|
||||||
|
Loading…
Reference in New Issue
Block a user