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
135 lines
5.4 KiB
Plaintext
135 lines
5.4 KiB
Plaintext
*** Settings ***
|
|
Documentation End-to-end integration tests for the 6-agent email categorization
|
|
... actor graph. Exercises graph compilation, sequential execution
|
|
... through all 6 agents, state management, and result validation
|
|
... across local, remote, and mixed configurations.
|
|
...
|
|
... Graph topology: categorizer -> component_orders | personal_summarizer
|
|
... | business_email -> supplier | client.
|
|
... All edges have no conditions → all nodes execute sequentially.
|
|
Library EmailGraphLib.py
|
|
Library OperatingSystem
|
|
Resource resources/email_testdata.resource
|
|
|
|
*** Test Cases ***
|
|
Email Graph Compiles And Executes All Six Agents
|
|
[Documentation] Full local tool-agent graph compiles and executes without error.
|
|
... All 6 agents are created from their tool configs and run sequentially.
|
|
... The final output is from the last node (client).
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${COMPONENT_ORDER_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
Result Response Contains client
|
|
|
|
Email Graph With Personal Email Input
|
|
[Documentation] Personal email input flows through all agents and completes.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${PERSONAL_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph With Business Email Input
|
|
[Documentation] Business email with meetings and urgency flows through graph.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${BUSINESS_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph With Unknown Email Input
|
|
[Documentation] Email with no recognizable keywords still executes all agents.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${UNKNOWN_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph With Empty Email Input
|
|
[Documentation] Empty subject/body should not crash the graph pipeline.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${EMPTY_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph Streaming Execution
|
|
[Documentation] Streaming execution path produces same result structure as sync.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph Stream ${COMPONENT_ORDER_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph Remote Registry Configuration
|
|
[Documentation] Remote registry variant: all agents use registry-retrieved configs.
|
|
... Graph topology and execution are identical to local variant.
|
|
Create Executor For Email Graph remote_graph
|
|
Execute Email Graph ${COMPONENT_ORDER_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
Result Response Contains registry
|
|
|
|
Email Graph Mixed Configuration
|
|
[Documentation] Mixed: categorizer is local, domain agents from registry.
|
|
... Validates hybrid local+remote config resolution.
|
|
Create Executor For Email Graph mixed_graph
|
|
Execute Email Graph ${BUSINESS_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph Returns State For Stateless Resumption
|
|
[Documentation] Graph execution returns opaque state dict for ADR-2026.
|
|
... State enables callers to resume execution from the same point.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${COMPONENT_ORDER_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has State
|
|
Result State Contains Key current_message
|
|
Result State Contains Key last_output
|
|
|
|
Email Graph With Second Component Order Email
|
|
[Documentation] Another component order email with different part numbers.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${COMPONENT_ORDER_EMAIL_2}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph With Second Personal Email
|
|
[Documentation] Shorter personal reply flows through all agents.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${PERSONAL_EMAIL_2}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph With Second Business Email
|
|
[Documentation] Strategy sync email flows through the entire graph.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${BUSINESS_EMAIL_2}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph With Client Email
|
|
[Documentation] Client proposal+support email exercises the full pipeline.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${CLIENT_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph With Supplier Email
|
|
[Documentation] Supplier RFQ+delivery+invoice email through full pipeline.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${SUPPLIER_EMAIL}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph With Client Bid Request
|
|
[Documentation] Client project bid with follow-up.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${CLIENT_EMAIL_2}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|
|
|
|
Email Graph With Delivery Update
|
|
[Documentation] Supplier delivery update email.
|
|
Create Executor For Email Graph local_graph
|
|
Execute Email Graph ${SUPPLIER_EMAIL_2}
|
|
Result Is Valid Actor Result
|
|
Result Has Nodes
|