mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-19 13:23:35 +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):
|
||||
"""
|
||||
Base class for retrievers integration tests.
|
||||
"""
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
def retriever_constructor(self) -> Type[BaseRetriever]: ...
|
||||
|
@ -5,9 +5,21 @@ from langchain_tests.unit_tests.tools import ToolsTests
|
||||
|
||||
|
||||
class ToolsIntegrationTests(ToolsTests):
|
||||
"""
|
||||
Base class for tools integration tests.
|
||||
"""
|
||||
|
||||
def test_invoke_matches_output_schema(self, tool: BaseTool) -> None:
|
||||
"""
|
||||
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(
|
||||
name=tool.name,
|
||||
@ -36,6 +48,8 @@ class ToolsIntegrationTests(ToolsTests):
|
||||
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.
|
||||
|
||||
For debugging tips, see :meth:`test_invoke_matches_output_schema`.
|
||||
"""
|
||||
tool_call = ToolCall(
|
||||
name=tool.name,
|
||||
@ -65,12 +79,20 @@ class ToolsIntegrationTests(ToolsTests):
|
||||
"""
|
||||
If invoked without a ToolCall, the tool can return anything
|
||||
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)
|
||||
|
||||
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
|
||||
|
||||
For debugging tips, see :meth:`test_invoke_no_tool_call`.
|
||||
"""
|
||||
await tool.ainvoke(self.tool_invoke_params_example)
|
||||
|
@ -15,7 +15,7 @@ EMBEDDING_SIZE = 6
|
||||
|
||||
|
||||
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
|
||||
that returns an empty vector store for each test.
|
||||
|
@ -1,8 +1,3 @@
|
||||
"""
|
||||
.. autosummary::
|
||||
:exclude-members: ToolsTests
|
||||
"""
|
||||
|
||||
import os
|
||||
from abc import abstractmethod
|
||||
from typing import Tuple, Type, Union
|
||||
@ -64,6 +59,10 @@ class ToolsTests(BaseStandardTests):
|
||||
|
||||
|
||||
class ToolsUnitTests(ToolsTests):
|
||||
"""
|
||||
Base class for tools unit tests.
|
||||
"""
|
||||
|
||||
@property
|
||||
def init_from_env_params(self) -> Tuple[dict, dict, dict]:
|
||||
"""Return env vars, init args, and expected instance attrs for initializing
|
||||
|
Loading…
Reference in New Issue
Block a user