126 lines
5.4 KiB
Gherkin
126 lines
5.4 KiB
Gherkin
Feature: Route Bridge Module Coverage
|
|
As a developer
|
|
I want to test all functionality in the route bridge module
|
|
So that we achieve 90%+ code coverage for the route_bridge.py file
|
|
|
|
Background:
|
|
Given I have a clean test environment for route bridge
|
|
|
|
Scenario: Test RouteBridge initialization
|
|
Given I have a route bridge stream router and agents
|
|
When I create the route bridge instance
|
|
Then the route bridge should be initialized correctly
|
|
And the route bridge logger should be set up
|
|
And route bridge active conversions should be empty
|
|
|
|
Scenario: Test RouteBridge initialization with scheduler
|
|
Given I have a route bridge stream router and agents
|
|
And I have an AsyncIO scheduler
|
|
When I create a RouteBridge instance with scheduler
|
|
Then the route bridge should be initialized with scheduler
|
|
And the route bridge scheduler should be stored correctly
|
|
|
|
Scenario: Test check_upgrade_conditions - no bridge config
|
|
Given I have a RouteBridge instance
|
|
And I have a route config without bridge configuration
|
|
And I have a stream message
|
|
When I check upgrade conditions
|
|
Then the route bridge upgrade result should be False
|
|
|
|
Scenario: Test check_upgrade_conditions - wrong route type
|
|
Given I have a RouteBridge instance
|
|
And I have a graph route config with bridge configuration
|
|
And I have a stream message
|
|
When I check upgrade conditions
|
|
Then the route bridge upgrade result should be False
|
|
|
|
Scenario: Test check_upgrade_conditions - needs_state condition
|
|
Given I have a RouteBridge instance
|
|
And I have a stream route config with needs_state upgrade condition
|
|
And I have a stream message with requires_state metadata
|
|
When I check upgrade conditions
|
|
Then the route bridge upgrade result should be True
|
|
|
|
Scenario: Test check_upgrade_conditions - message_count condition
|
|
Given I have a RouteBridge instance
|
|
And I have a stream route config with message_count upgrade condition
|
|
And I have processed enough messages to trigger upgrade
|
|
When I check upgrade conditions
|
|
Then the route bridge upgrade result should be True
|
|
And the route bridge message count should be at least 5
|
|
|
|
Scenario: Test check_upgrade_conditions - complexity_threshold condition
|
|
Given I have a RouteBridge instance
|
|
And I have a stream route config with complexity_threshold upgrade condition
|
|
And I have a complex route configuration
|
|
When I check upgrade conditions
|
|
Then the route bridge upgrade result should be True
|
|
|
|
Scenario: Test check_upgrade_conditions - non-callable predicate
|
|
Given I have a RouteBridge instance
|
|
And I have a stream route config with non-callable custom_predicate
|
|
And I have a stream message
|
|
When I check upgrade conditions
|
|
Then the route bridge upgrade result should be False
|
|
|
|
Scenario: Test check_downgrade_conditions - no bridge config
|
|
Given I have a RouteBridge instance
|
|
And I have a route config without bridge configuration
|
|
And I have a graph state
|
|
When I check downgrade conditions
|
|
Then the downgrade result should be False
|
|
|
|
Scenario: Test check_downgrade_conditions - wrong route type
|
|
Given I have a RouteBridge instance
|
|
And I have a stream route config with bridge configuration
|
|
And I have a graph state
|
|
When I check downgrade conditions
|
|
Then the downgrade result should be False
|
|
|
|
Scenario: Test check_downgrade_conditions - idle_time condition
|
|
Given I have a RouteBridge instance
|
|
And I have a graph route config with idle_time downgrade condition
|
|
And I have a graph state that has been idle too long
|
|
When I check downgrade conditions
|
|
Then the downgrade result should be True
|
|
|
|
Scenario: Test check_downgrade_conditions - state_size condition
|
|
Given I have a RouteBridge instance
|
|
And I have a graph route config with state_size downgrade condition
|
|
And I have a graph state with minimal messages
|
|
When I check downgrade conditions
|
|
Then the downgrade result should be True
|
|
|
|
Scenario: Test check_downgrade_conditions - no_conditionals_used condition
|
|
Given I have a RouteBridge instance
|
|
And I have a graph route config with no_conditionals_used downgrade condition
|
|
And I have a graph state with no conditional edges used
|
|
When I check downgrade conditions
|
|
Then the downgrade result should be True
|
|
|
|
Scenario: Test _get_message_count functionality
|
|
Given I have a RouteBridge instance
|
|
And I seed a message count for the route
|
|
When I get message count for a route
|
|
Then the route bridge message count should be returned
|
|
And the route bridge message count result should be a valid integer
|
|
|
|
Scenario: Test error handling in downgrade_graph_to_stream
|
|
Given I have a clean test environment for route bridge
|
|
Given I have a RouteBridge instance
|
|
And I have a graph route config for downgrade
|
|
And I have a corrupted LangGraph instance
|
|
When I attempt to downgrade graph to stream
|
|
Then route bridge error handling should occur
|
|
And the route bridge system should remain stable
|
|
|
|
|
|
Scenario: Test complex upgrade downgrade cycle
|
|
Given I have a RouteBridge instance
|
|
And I have a route config that supports both upgrade and downgrade
|
|
And I have a stream message with requires_state metadata
|
|
When I perform an upgrade and then downgrade cycle
|
|
Then the cycle should complete successfully
|
|
And the final configuration should be consistent
|
|
And active conversions should be tracked correctly
|