mirror of
https://github.com/deepset-ai/haystack.git
synced 2025-07-11 11:01:44 +00:00
46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
import pytest
|
|
|
|
from haystack.components.builders.prompt_builder import PromptBuilder
|
|
|
|
|
|
def test_init():
|
|
builder = PromptBuilder(template="This is a {{ variable }}")
|
|
assert builder._template_string == "This is a {{ variable }}"
|
|
|
|
|
|
def test_to_dict():
|
|
builder = PromptBuilder(template="This is a {{ variable }}")
|
|
res = builder.to_dict()
|
|
assert res == {
|
|
"type": "haystack.components.builders.prompt_builder.PromptBuilder",
|
|
"init_parameters": {"template": "This is a {{ variable }}"},
|
|
}
|
|
|
|
|
|
def test_run():
|
|
builder = PromptBuilder(template="This is a {{ variable }}")
|
|
res = builder.run(variable="test")
|
|
assert res == {"prompt": "This is a test"}
|
|
|
|
|
|
def test_run_without_input():
|
|
builder = PromptBuilder(template="This is a template without input")
|
|
res = builder.run()
|
|
assert res == {"prompt": "This is a template without input"}
|
|
|
|
|
|
def test_run_with_missing_input():
|
|
builder = PromptBuilder(template="This is a {{ variable }}")
|
|
res = builder.run()
|
|
assert res == {"prompt": "This is a "}
|
|
|
|
|
|
def test_run_with_missing_required_input():
|
|
builder = PromptBuilder(template="This is a {{ foo }}, not a {{ bar }}", required_variables=["foo", "bar"])
|
|
with pytest.raises(ValueError, match="foo"):
|
|
builder.run(bar="bar")
|
|
with pytest.raises(ValueError, match="bar"):
|
|
builder.run(foo="foo")
|
|
with pytest.raises(ValueError, match="foo, bar"):
|
|
builder.run()
|