Tests (Robot): Add missing Robot Framework integration test for the langgraph module #2796

Open
opened 2026-04-04 19:51:12 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: test/langgraph-robot-integration
  • Commit Message: test(langgraph): add Robot Framework integration test suite for langgraph module
  • Milestone: v3.7.0
  • Parent Epic: #933

Background and Context

The src/cleveragents/langgraph/ module provides the core LangGraph primitives adapted for actor-first routing. Per the project specification and CONTRIBUTING.md's Multi-Level Testing Mandate, every module must have tests at all required levels: Behave BDD unit tests, Robot Framework integration tests, and ASV performance benchmarks.

A scan of /app/robot/ confirms that no .robot file currently targets the langgraph module at the integration level. The module is a critical infrastructure component that bridges the RxPy reactive stream system with LangGraph's stateful graph execution engine, and its absence from the Robot Framework integration test suite means there is no end-to-end validation of the module's public API under realistic conditions.

The langgraph module exposes the following key public classes and functions (confirmed via source inspection of src/cleveragents/langgraph/):

  • graph.pyGraphConfig, LangGraph (lazy-loaded; stateful graph lifecycle: start, stop, get_state, run_async, sync_executor, get_execution_history, has_cycle)
  • pure_graph.pyPureGraph (topological ordering and parallel execution: topological_order, execute)
  • nodes.pyNodeType, NodeConfig, Edge, Node, ToolAgent (node/edge primitives, evaluate_edge_condition, can_execute_parallel, get_capabilities)
  • state.pyStateUpdateMode, StateSnapshot, GraphState, StateManager (state lifecycle: update, to_dict, from_dict, get_state, update_state, load_checkpoint, get_latest_checkpoint, time_travel, get_state_observable, clear_history, reset, close)
  • bridge.pyRxPyLangGraphBridge (RxPy↔LangGraph integration: create_graph_from_config, create_graph_stream, create_message_router_node, create_conditional_edges, update_state, checkpoint, route_message)
  • dynamic_router.pyDynamicRouter (runtime routing: route)
  • message_router.pybuild_message_router_node, build_message_router_edges
  • routing_adapter.pybuild_route_nodes_from_stream

The public exports from __init__.py are: Edge, GraphConfig, GraphState, LangGraph, NodeConfig, NodeType.

Subtasks

  • Create robot/langgraph_integration.robot covering the LangGraph and GraphConfig public API (start/stop lifecycle, run_async, get_state, has_cycle, get_execution_history)
  • Add Robot test scenarios for PureGraph (topological_order, execute with parallel and sequential node configurations)
  • Add Robot test scenarios for GraphState and StateManager (state update, checkpoint, time-travel, observable, reset)
  • Add Robot test scenarios for Node, Edge, NodeConfig, NodeType primitives (evaluate_edge_condition, can_execute_parallel, get_capabilities)
  • Add Robot test scenarios for RxPyLangGraphBridge (create_graph_from_config, create_graph_stream, route_message, update_state, checkpoint)
  • Add Robot test scenarios for DynamicRouter.route and build_message_router_node / build_message_router_edges
  • Verify all scenarios pass under nox -e integration_tests
  • Confirm no mocking is used in any Robot test (per CONTRIBUTING.md: mocking is prohibited in integration tests)

Definition of Done

  • A robot/langgraph_integration.robot file exists and covers all public classes and functions listed above
  • All Robot Framework scenarios pass under nox -e integration_tests with no failures or skips
  • No mock objects or test doubles are used in the Robot test file
  • nox -e lint passes with no new violations
  • nox -e typecheck passes with no new type errors
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: Unknown | Agent: ca-new-issue-creator

## Metadata - **Branch**: `test/langgraph-robot-integration` - **Commit Message**: `test(langgraph): add Robot Framework integration test suite for langgraph module` - **Milestone**: v3.7.0 - **Parent Epic**: #933 ## Background and Context The `src/cleveragents/langgraph/` module provides the core LangGraph primitives adapted for actor-first routing. Per the project specification and `CONTRIBUTING.md`'s Multi-Level Testing Mandate, every module must have tests at all required levels: Behave BDD unit tests, Robot Framework integration tests, and ASV performance benchmarks. A scan of `/app/robot/` confirms that **no `.robot` file currently targets the `langgraph` module** at the integration level. The module is a critical infrastructure component that bridges the RxPy reactive stream system with LangGraph's stateful graph execution engine, and its absence from the Robot Framework integration test suite means there is no end-to-end validation of the module's public API under realistic conditions. The `langgraph` module exposes the following key public classes and functions (confirmed via source inspection of `src/cleveragents/langgraph/`): - `graph.py` — `GraphConfig`, `LangGraph` (lazy-loaded; stateful graph lifecycle: `start`, `stop`, `get_state`, `run_async`, `sync_executor`, `get_execution_history`, `has_cycle`) - `pure_graph.py` — `PureGraph` (topological ordering and parallel execution: `topological_order`, `execute`) - `nodes.py` — `NodeType`, `NodeConfig`, `Edge`, `Node`, `ToolAgent` (node/edge primitives, `evaluate_edge_condition`, `can_execute_parallel`, `get_capabilities`) - `state.py` — `StateUpdateMode`, `StateSnapshot`, `GraphState`, `StateManager` (state lifecycle: `update`, `to_dict`, `from_dict`, `get_state`, `update_state`, `load_checkpoint`, `get_latest_checkpoint`, `time_travel`, `get_state_observable`, `clear_history`, `reset`, `close`) - `bridge.py` — `RxPyLangGraphBridge` (RxPy↔LangGraph integration: `create_graph_from_config`, `create_graph_stream`, `create_message_router_node`, `create_conditional_edges`, `update_state`, `checkpoint`, `route_message`) - `dynamic_router.py` — `DynamicRouter` (runtime routing: `route`) - `message_router.py` — `build_message_router_node`, `build_message_router_edges` - `routing_adapter.py` — `build_route_nodes_from_stream` The public exports from `__init__.py` are: `Edge`, `GraphConfig`, `GraphState`, `LangGraph`, `NodeConfig`, `NodeType`. ## Subtasks - [ ] Create `robot/langgraph_integration.robot` covering the `LangGraph` and `GraphConfig` public API (start/stop lifecycle, `run_async`, `get_state`, `has_cycle`, `get_execution_history`) - [ ] Add Robot test scenarios for `PureGraph` (`topological_order`, `execute` with parallel and sequential node configurations) - [ ] Add Robot test scenarios for `GraphState` and `StateManager` (state update, checkpoint, time-travel, observable, reset) - [ ] Add Robot test scenarios for `Node`, `Edge`, `NodeConfig`, `NodeType` primitives (`evaluate_edge_condition`, `can_execute_parallel`, `get_capabilities`) - [ ] Add Robot test scenarios for `RxPyLangGraphBridge` (`create_graph_from_config`, `create_graph_stream`, `route_message`, `update_state`, `checkpoint`) - [ ] Add Robot test scenarios for `DynamicRouter.route` and `build_message_router_node` / `build_message_router_edges` - [ ] Verify all scenarios pass under `nox -e integration_tests` - [ ] Confirm no mocking is used in any Robot test (per CONTRIBUTING.md: mocking is prohibited in integration tests) ## Definition of Done - [ ] A `robot/langgraph_integration.robot` file exists and covers all public classes and functions listed above - [ ] All Robot Framework scenarios pass under `nox -e integration_tests` with no failures or skips - [ ] No mock objects or test doubles are used in the Robot test file - [ ] `nox -e lint` passes with no new violations - [ ] `nox -e typecheck` passes with no new type errors - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: Unknown | Agent: ca-new-issue-creator
freemo added this to the v3.7.0 milestone 2026-04-04 19:51:18 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified | MoSCoW: Should Have — Missing Robot Framework integration test for the langgraph module. Integration test coverage is important for the actor execution pipeline.

Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified | **MoSCoW**: Should Have — Missing Robot Framework integration test for the langgraph module. Integration test coverage is important for the actor execution pipeline. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#2796
No description provided.