haystack/test/core/pipeline/test_default_value.py
Massimiliano Pippi 84da80c1f3
chore: make core tests layout consistent (#6449)
* move unit tests up

* move tests up one dir, make them unit
2023-11-29 18:58:44 +01:00

41 lines
1.0 KiB
Python

# SPDX-FileCopyrightText: 2022-present deepset GmbH <info@deepset.ai>
#
# SPDX-License-Identifier: Apache-2.0
from pathlib import Path
from pprint import pprint
from haystack.core.component import component
from haystack.core.pipeline import Pipeline
from haystack.testing.sample_components import AddFixedValue, Sum
import logging
logging.basicConfig(level=logging.DEBUG)
@component
class WithDefault:
@component.output_types(b=int)
def run(self, a: int, b: int = 2):
return {"c": a + b}
def test_pipeline(tmp_path):
pipeline = Pipeline()
pipeline.add_component("with_defaults", WithDefault())
pipeline.draw(tmp_path / "default_value.png")
# Pass all the inputs
results = pipeline.run({"with_defaults": {"a": 40, "b": 30}})
pprint(results)
assert results == {"with_defaults": {"c": 70}}
# Rely on default value for 'b'
results = pipeline.run({"with_defaults": {"a": 40}})
pprint(results)
assert results == {"with_defaults": {"c": 42}}
if __name__ == "__main__":
test_pipeline(Path(__file__).parent)