Skip to main content

Standard tests for LangChain implementations

Project description

langchain-standard-tests

This is an INTERNAL library for the LangChain project. It contains the base classes for a standard set of tests.

Installation

This package will NOT be regularly published to pypi. It is intended to be installed directly from github at test time.

Pip:

```bash
pip install git+https://github.com/langchain-ai/langchain.git#subdirectory=libs/standard-tests
```

Poetry:

```bash
poetry add git+https://github.com/langchain-ai/langchain.git#subdirectory=libs/standard-tests
```

Usage

To add standard tests to an integration package's e.g. ChatModel, you need to create

  1. A unit test class that inherits from ChatModelUnitTests
  2. An integration test class that inherits from ChatModelIntegrationTests

tests/unit_tests/test_standard.py:

"""Standard LangChain interface tests"""

from typing import Type

import pytest
from langchain_core.language_models import BaseChatModel
from langchain_standard_tests.unit_tests import ChatModelUnitTests

from langchain_parrot_chain import ChatParrotChain


class TestParrotChainStandard(ChatModelUnitTests):
    @pytest.fixture
    def chat_model_class(self) -> Type[BaseChatModel]:
        return ChatParrotChain

tests/integration_tests/test_standard.py:

"""Standard LangChain interface tests"""

from typing import Type

import pytest
from langchain_core.language_models import BaseChatModel
from langchain_standard_tests.integration_tests import ChatModelIntegrationTests

from langchain_parrot_chain import ChatParrotChain


class TestParrotChainStandard(ChatModelIntegrationTests):
    @pytest.fixture
    def chat_model_class(self) -> Type[BaseChatModel]:
        return ChatParrotChain

Reference

The following fixtures are configurable in the test classes. Anything not marked as required is optional.

  • chat_model_class (required): The class of the chat model to be tested
  • chat_model_params: The keyword arguments to pass to the chat model constructor
  • chat_model_has_tool_calling: Whether the chat model can call tools. By default, this is set to hasattr(chat_model_class, 'bind_tools)
  • chat_model_has_structured_output: Whether the chat model can structured output. By default, this is set to hasattr(chat_model_class, 'with_structured_output')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langchain_tests-0.3.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

langchain_tests-0.3.0-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file langchain_tests-0.3.0.tar.gz.

File metadata

  • Download URL: langchain_tests-0.3.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.4 Darwin/23.5.0

File hashes

Hashes for langchain_tests-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e30655bf284f2e5ebc961842e0c7c158af6b3b6fda392dcc99b73c35a0f2b7f3
MD5 d0fe632d4562b8665d453c91fde21fbe
BLAKE2b-256 cd743cc68205670d4233620514ce3e5e4a42898bd15df6f6f3eee394a85e182e

See more details on using hashes here.

File details

Details for the file langchain_tests-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: langchain_tests-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.4 Darwin/23.5.0

File hashes

Hashes for langchain_tests-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a78ff631a7f3ea1e448d6c926c6c6ea33b4d8ec2b8cbf2e6e2904a9f02273b82
MD5 16b78c403ef7018e08648ab3a35e7b73
BLAKE2b-256 148ef77641f77c0178a8507d6025d7535f186eb4d5c5d47c87f46850f3ffcc48

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page