Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

standard-tests: root docstrings #28595

Merged
merged 1 commit into from
Dec 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading