2024-05-28 15:42:47 +02:00
|
|
|
Feature: Pipeline running
|
|
|
|
|
|
|
|
|
|
Scenario Outline: Running a correct Pipeline
|
|
|
|
|
Given a pipeline <kind>
|
|
|
|
|
When I run the Pipeline
|
2025-02-07 16:37:29 +01:00
|
|
|
Then components are called with the expected inputs
|
|
|
|
|
And it should return the expected result
|
2024-05-28 15:42:47 +02:00
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
| kind |
|
|
|
|
|
| that has no components |
|
|
|
|
|
| that is linear |
|
2024-05-31 13:00:29 +02:00
|
|
|
| that is really complex with lots of components, forks, and loops |
|
|
|
|
|
| that has a single component with a default input |
|
|
|
|
|
| that has two loops of identical lengths |
|
|
|
|
|
| that has two loops of different lengths |
|
|
|
|
|
| that has a single loop with two conditional branches |
|
|
|
|
|
| that has a component with dynamic inputs defined in init |
|
|
|
|
|
| that has two branches that don't merge |
|
|
|
|
|
| that has three branches that don't merge |
|
|
|
|
|
| that has two branches that merge |
|
|
|
|
|
| that has different combinations of branches that merge and do not merge |
|
|
|
|
|
| that has two branches, one of which loops back |
|
|
|
|
|
| that has a component with mutable input |
|
|
|
|
|
| that has a component with mutable output sent to multiple inputs |
|
|
|
|
|
| that has a greedy and variadic component after a component with default input |
|
|
|
|
|
| that has a component with only default inputs |
|
2024-10-29 15:43:16 +01:00
|
|
|
| that has a component with only default inputs as first to run and receives inputs from a loop |
|
2024-05-31 13:00:29 +02:00
|
|
|
| that has multiple branches that merge into a component with a single variadic input |
|
|
|
|
|
| that has multiple branches of different lengths that merge into a component with a single variadic input |
|
2024-06-03 12:36:04 +02:00
|
|
|
| that is linear and returns intermediate outputs |
|
|
|
|
|
| that has a loop and returns intermediate outputs from it |
|
|
|
|
|
| that is linear and returns intermediate outputs from multiple sockets |
|
2024-06-06 15:19:07 +02:00
|
|
|
| that has a component with default inputs that doesn't receive anything from its sender |
|
|
|
|
|
| that has a component with default inputs that doesn't receive anything from its sender but receives input from user |
|
|
|
|
|
| that has a loop and a component with default inputs that doesn't receive anything from its sender but receives input from user |
|
2024-07-12 17:30:10 +02:00
|
|
|
| that has multiple components with only default inputs and are added in a different order from the order of execution |
|
2024-07-30 15:00:12 +02:00
|
|
|
| that is linear with conditional branching and multiple joins |
|
2024-10-29 15:43:16 +01:00
|
|
|
| that is a simple agent |
|
2024-09-10 14:59:53 +02:00
|
|
|
| that has a variadic component that receives partial inputs |
|
2025-02-06 15:19:47 +01:00
|
|
|
| that has a variadic component that receives partial inputs in a different order |
|
2024-09-19 16:59:35 +02:00
|
|
|
| that has an answer joiner variadic component |
|
2024-10-29 15:43:16 +01:00
|
|
|
| that is linear and a component in the middle receives optional input from other components and input from the user |
|
|
|
|
|
| that has a loop in the middle |
|
|
|
|
|
| that has variadic component that receives a conditional input |
|
2024-10-30 16:03:41 +01:00
|
|
|
| that has a string variadic component |
|
2025-02-06 15:19:47 +01:00
|
|
|
| that is an agent that can use RAG |
|
|
|
|
|
| that has a feedback loop |
|
|
|
|
|
| created in a non-standard order that has a loop |
|
|
|
|
|
| that has an agent with a feedback cycle |
|
|
|
|
|
| that passes outputs that are consumed in cycle to outside the cycle |
|
|
|
|
|
| with a component that has dynamic default inputs |
|
|
|
|
|
| with a component that has variadic dynamic default inputs |
|
|
|
|
|
| that is a file conversion pipeline with two joiners |
|
2025-02-24 16:17:17 +01:00
|
|
|
| that is a file conversion pipeline with three joiners |
|
|
|
|
|
| that is a file conversion pipeline with three joiners and a loop |
|
2025-02-19 10:10:48 +01:00
|
|
|
| that has components returning dataframes |
|
2025-02-27 10:13:41 +01:00
|
|
|
| where a single component connects multiple sockets to the same receiver socket |
|
|
|
|
|
| where a component in a cycle provides inputs for a component outside the cycle in one iteration and no input in another iteration |
|
2025-07-15 16:02:39 +02:00
|
|
|
| that is blocked because not enough component inputs |
|
2024-05-28 15:42:47 +02:00
|
|
|
|
|
|
|
|
Scenario Outline: Running a bad Pipeline
|
|
|
|
|
Given a pipeline <kind>
|
|
|
|
|
When I run the Pipeline
|
|
|
|
|
Then it must have raised <exception>
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
| kind | exception |
|
2024-09-12 11:00:12 +02:00
|
|
|
| that has an infinite loop | PipelineMaxComponentRuns |
|
2024-05-31 13:00:29 +02:00
|
|
|
| that has a component that doesn't return a dictionary | PipelineRuntimeError |
|
2025-04-09 08:18:50 +02:00
|
|
|
| that has a cycle that would get it stuck | PipelineComponentsBlockedError |
|