forked from Archives/langchain
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
"""Test building the Zapier tool, not running it."""
|
|
import pytest
|
|
|
|
from langchain.tools.zapier.prompt import BASE_ZAPIER_TOOL_PROMPT
|
|
from langchain.tools.zapier.tool import ZapierNLARunAction
|
|
from langchain.utilities.zapier import ZapierNLAWrapper
|
|
|
|
|
|
def test_default_base_prompt() -> None:
|
|
"""Test that the default prompt is being inserted."""
|
|
tool = ZapierNLARunAction(
|
|
action_id="test",
|
|
zapier_description="test",
|
|
params_schema={"test": "test"},
|
|
api_wrapper=ZapierNLAWrapper(zapier_nla_api_key="test"),
|
|
)
|
|
|
|
# Test that the base prompt was successfully assigned to the default prompt
|
|
assert tool.base_prompt == BASE_ZAPIER_TOOL_PROMPT
|
|
assert tool.description == BASE_ZAPIER_TOOL_PROMPT.format(
|
|
zapier_description="test",
|
|
params=str(list({"test": "test"}.keys())),
|
|
)
|
|
|
|
|
|
def test_custom_base_prompt() -> None:
|
|
"""Test that a custom prompt is being inserted."""
|
|
base_prompt = "Test. {zapier_description} and {params}."
|
|
tool = ZapierNLARunAction(
|
|
action_id="test",
|
|
zapier_description="test",
|
|
params_schema={"test": "test"},
|
|
base_prompt=base_prompt,
|
|
api_wrapper=ZapierNLAWrapper(zapier_nla_api_key="test"),
|
|
)
|
|
|
|
# Test that the base prompt was successfully assigned to the default prompt
|
|
assert tool.base_prompt == base_prompt
|
|
assert tool.description == "Test. test and ['test']."
|
|
|
|
|
|
def test_custom_base_prompt_fail() -> None:
|
|
"""Test validating an invalid custom prompt."""
|
|
base_prompt = "Test. {zapier_description}."
|
|
with pytest.raises(ValueError):
|
|
ZapierNLARunAction(
|
|
action_id="test",
|
|
zapier_description="test",
|
|
params={"test": "test"},
|
|
base_prompt=base_prompt,
|
|
api_wrapper=ZapierNLAWrapper(zapier_nla_api_key="test"),
|
|
)
|