Skip to content

Commit

Permalink
standard-tests: root docstrings (#28595)
Browse files Browse the repository at this point in the history
  • Loading branch information
efriis authored Dec 6, 2024
1 parent 925ca75 commit b7c2029
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@


class RetrieversIntegrationTests(BaseStandardTests):
"""
Base class for retrievers integration tests.
"""

@property
@abstractmethod
def retriever_constructor(self) -> Type[BaseRetriever]: ...
Expand Down
24 changes: 23 additions & 1 deletion libs/standard-tests/langchain_tests/integration_tests/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,21 @@


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,
Expand Down Expand Up @@ -36,6 +48,8 @@ def test_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.
For debugging tips, see :meth:`test_invoke_matches_output_schema`.
"""
tool_call = ToolCall(
name=tool.name,
Expand Down Expand Up @@ -65,12 +79,20 @@ def test_invoke_no_tool_call(self, tool: BaseTool) -> None:
"""
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)
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@


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.
Expand Down
9 changes: 4 additions & 5 deletions libs/standard-tests/langchain_tests/unit_tests/tools.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
"""
.. autosummary::
:exclude-members: ToolsTests
"""

import os
from abc import abstractmethod
from typing import Tuple, Type, Union
Expand Down Expand Up @@ -64,6 +59,10 @@ def tool(self) -> BaseTool:


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
Expand Down

0 comments on commit b7c2029

Please sign in to comment.