38fe40553d
Adds 104 Robot Framework integration tests exercising the full 6-agent email categorization actor graph across five configuration strategies: local, remote, mixed, component-decomposed (merge_configs), and namespaced (local: refs via ReferenceResolver + LocalPackageStore). - 7 new email graph YAML fixtures under tests/fixtures/email_graph/ - 7 namespaced component YAMLs with local namespace identifiers - 9 robot test suite files (email_categorization_graph, per-agent, negative tests, merge_configs validation, components, namespaced) - EmailGraphLib.py keyword library (executor, graph, merge, components) - CleverActorsLib.py refactored into per-module libs: robot/lib/config_lib.py, app_lib.py, registry_lib.py - email_testdata.resource with 12 realistic email scenarios - All 104 integration tests pass, all 23 existing tests preserved Closes #30
101 lines
3.8 KiB
Plaintext
101 lines
3.8 KiB
Plaintext
*** Settings ***
|
|
Documentation Component-based integration tests for the email categorization graph.
|
|
... Each agent is defined in its own YAML file. The main graph
|
|
... routes file references them. All components are assembled via
|
|
... merge_configs() at test time, validating the decomposed
|
|
... component pattern end-to-end.
|
|
Library EmailGraphLib.py
|
|
Resource resources/email_testdata.resource
|
|
|
|
*** Test Cases ***
|
|
Component Graph Assembles Six Actors
|
|
[Documentation] Loading all 7 component files (6 agents + 1 routes) and
|
|
... merging produces a config with exactly 6 actors.
|
|
Component Graph Actor Count Equals 6
|
|
|
|
Component Graph Executes Component Order Email
|
|
[Documentation] Full graph assembled from components processes a
|
|
... component order email end-to-end.
|
|
Create Executor From Components
|
|
Execute Email Graph ${COMPONENT_ORDER_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph Executes Personal Email
|
|
[Documentation] Personal email through component-assembled graph.
|
|
Create Executor From Components
|
|
Execute Email Graph ${PERSONAL_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph Executes Business Email
|
|
[Documentation] Business email through component-assembled graph.
|
|
Create Executor From Components
|
|
Execute Email Graph ${BUSINESS_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph Executes Supplier Email
|
|
[Documentation] Supplier email through component-assembled graph.
|
|
Create Executor From Components
|
|
Execute Email Graph ${SUPPLIER_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph Executes Client Email
|
|
[Documentation] Client email through component-assembled graph.
|
|
Create Executor From Components
|
|
Execute Email Graph ${CLIENT_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph Handles Unknown Email
|
|
[Documentation] Email with no recognizable category still executes.
|
|
Create Executor From Components
|
|
Execute Email Graph ${UNKNOWN_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph Handles Empty Input
|
|
[Documentation] Empty email handled gracefully in component graph.
|
|
Create Executor From Components
|
|
Execute Email Graph ${EMPTY_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph Returns State
|
|
[Documentation] Component-assembled graph returns state for ADR-2026.
|
|
Create Executor From Components
|
|
Execute Email Graph ${COMPONENT_ORDER_EMAIL}
|
|
Result Has State
|
|
Result State Contains Key current_message
|
|
Result State Contains Key last_output
|
|
|
|
Component Graph Streaming Execution
|
|
[Documentation] Streaming path works with component-assembled graph.
|
|
Create Executor From Components
|
|
Execute Email Graph Stream ${BUSINESS_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph With Supplier Delivery Email
|
|
[Documentation] Delivery update email through assembled components.
|
|
Create Executor From Components
|
|
Execute Email Graph ${SUPPLIER_EMAIL_2}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph With Client Bid Request
|
|
[Documentation] Client bid request through assembled components.
|
|
Create Executor From Components
|
|
Execute Email Graph ${CLIENT_EMAIL_2}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Component Graph Merge Preserves Routes
|
|
[Documentation] The merged component config preserves graph topology.
|
|
${merged}= Load All Email Components
|
|
Merged Config Has Nested Key ${merged} routes main
|
|
Merged Config Has Nested Key ${merged} routes main nodes
|
|
Merged Config Has Nested Key ${merged} routes main edges
|