mirror of
https://github.com/Mintplex-Labs/langchain-python.git
synced 2026-07-16 09:04:27 -04:00
b8df15cd64
<!-- Thank you for contributing to LangChain! Replace this comment with: - Description: a description of the change, - Issue: the issue # it fixes (if applicable), - Dependencies: any dependencies required for this change, - Tag maintainer: for a quicker response, tag the relevant maintainer (see below), - Twitter handle: we announce bigger features on Twitter. If your PR gets announced and you'd like a mention, we'll gladly shout you out! Please make sure you're PR is passing linting and testing before submitting. Run `make format`, `make lint` and `make test` to check this locally. If you're adding a new integration, please include: 1. a test for the integration, preferably unit tests that do not rely on network access, 2. an example notebook showing its use. Maintainer responsibilities: - General / Misc / if you don't know who to tag: @baskaryan - DataLoaders / VectorStores / Retrievers: @rlancemartin, @eyurtsev - Models / Prompts: @hwchase17, @baskaryan - Memory: @hwchase17 - Agents / Tools / Toolkits: @hinthornw - Tracing / Callbacks: @agola11 - Async: @agola11 If no one reviews your PR within a few days, feel free to @-mention the same people again. See contribution guidelines for more information on how to write/run tests, lint, etc: https://github.com/hwchase17/langchain/blob/master/.github/CONTRIBUTING.md --> --------- Co-authored-by: jacoblee93 <jacoblee93@gmail.com> Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com> Co-authored-by: Bagatur <baskaryan@gmail.com>
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
"""Test transform chain."""
|
|
from typing import Dict
|
|
|
|
import pytest
|
|
|
|
from langchain.chains.transform import TransformChain
|
|
|
|
|
|
def dummy_transform(inputs: Dict[str, str]) -> Dict[str, str]:
|
|
"""Transform a dummy input for tests."""
|
|
outputs = inputs
|
|
outputs["greeting"] = f"{inputs['first_name']} {inputs['last_name']} says hello"
|
|
del outputs["first_name"]
|
|
del outputs["last_name"]
|
|
return outputs
|
|
|
|
|
|
def test_transform_chain() -> None:
|
|
"""Test basic transform chain."""
|
|
transform_chain = TransformChain(
|
|
input_variables=["first_name", "last_name"],
|
|
output_variables=["greeting"],
|
|
transform=dummy_transform,
|
|
)
|
|
input_dict = {"first_name": "Leroy", "last_name": "Jenkins"}
|
|
response = transform_chain(input_dict)
|
|
expected_response = {"greeting": "Leroy Jenkins says hello"}
|
|
assert response == expected_response
|
|
|
|
|
|
def test_transform_chain_bad_inputs() -> None:
|
|
"""Test basic transform chain."""
|
|
transform_chain = TransformChain(
|
|
input_variables=["first_name", "last_name"],
|
|
output_variables=["greeting"],
|
|
transform=dummy_transform,
|
|
)
|
|
input_dict = {"name": "Leroy", "last_name": "Jenkins"}
|
|
with pytest.raises(ValueError):
|
|
_ = transform_chain(input_dict)
|