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
- A unit test class that inherits from ChatModelUnitTests
- 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 testedchat_model_params: The keyword arguments to pass to the chat model constructorchat_model_has_tool_calling: Whether the chat model can call tools. By default, this is set tohasattr(chat_model_class, 'bind_tools)chat_model_has_structured_output: Whether the chat model can structured output. By default, this is set tohasattr(chat_model_class, 'with_structured_output')
Metadata
Release files for langchain-base-tests 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| langchain_base_tests-0.3.0.tar.gz | 17.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_base_tests-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.2 kB
Release files / langchain_base_tests-0.3.0.tar.gz
| Download URL | langchain_base_tests-0.3.0.tar.gz |
|---|---|
| Size | 17.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
259321b1965c682b5313fadde669d928163e32b633ac21227ff199f777b90a31
|
|
BLAKE2b-256 checksum How to use checksums |
354bbb3e100fb5b43d51d6ffecab3fe74361dd890080f0844b93f79ea3258e4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.11.4 Darwin/23.5.0
|
Release files / langchain_base_tests-0.3.0-py3-none-any.whl
| Download URL | langchain_base_tests-0.3.0-py3-none-any.whl |
|---|---|
| Size | 22.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0ac75dd4363bb6c995febcb1bb4e593e619a58e8239fadc12d637e7fd00d9a2e
|
|
BLAKE2b-256 checksum How to use checksums |
ec5872122252dc619d211481116af693cfc47750c679b5a42c53d771e422672f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.11.4 Darwin/23.5.0
|
Security for langchain-base-tests 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.