Files
cleveragents-core/robot/phase_reversion.robot

58 lines
2.8 KiB
Plaintext

*** Settings ***
Documentation End-to-end tests for phase reversion state machine
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER_SCRIPT} robot/helper_phase_reversion.py
*** Test Cases ***
Manual Reversion From Execute To Strategize
[Documentation] Revert a plan from Execute to Strategize manually
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} manual_revert cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} reversion-manual-ok
Auto Reversion From Constrained Apply
[Documentation] Automatically revert when Apply is constrained and profile permits
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} auto_revert_apply cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} reversion-auto-apply-ok
Loop Guard Blocks Excessive Reversions
[Documentation] Verify the max 3 reversions guard
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} loop_guard cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} loop-guard-ok
Profile Gated Auto Reversion
[Documentation] Manual profile blocks auto-reversion
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} profile_gate cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} profile-gate-ok
Terminal Plan Cannot Be Reverted
[Documentation] Applied plan cannot be reverted
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} terminal_block cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} terminal-block-ok
Reversion Preserves Context
[Documentation] Arguments and project links survive reversion
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} context_preserved cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} context-preserved-ok
Decision Recording On Reversion
[Documentation] Each reversion is logged as a decision
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} decision_recording cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} decision-recording-ok
Can Revert To Validation
[Documentation] Validate allowed reversion paths
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} can_revert_to cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} can-revert-to-ok