Files
cleveragents-core/robot/plan_lifecycle_v3.robot
freemo 039ab87b52
CI / lint (pull_request) Successful in 15s
CI / typecheck (pull_request) Successful in 31s
CI / security (pull_request) Successful in 22s
CI / quality (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 4m37s
CI / build (pull_request) Successful in 15s
CI / lint (push) Successful in 12s
CI / typecheck (push) Successful in 27s
CI / security (push) Successful in 22s
CI / quality (push) Successful in 15s
CI / unit_tests (pull_request) Successful in 9m56s
CI / integration_tests (push) Successful in 4m41s
CI / build (push) Successful in 15s
CI / unit_tests (push) Successful in 9m58s
CI / coverage (pull_request) Successful in 7m1s
CI / docker (pull_request) Successful in 8s
CI / docker (push) Successful in 8s
CI / coverage (push) Successful in 6m54s
feat(domain): rebaseline plan phases and apply states
2026-02-15 00:12:07 -05:00

117 lines
6.4 KiB
Plaintext

*** Settings ***
Documentation Integration tests for v3 plan lifecycle: domain models, service layer,
... automation levels, subplan support, and phase transitions.
... Covers commit 548a09f stages A5, A6, E1, and their cross-module integration.
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER_SCRIPT} robot/helper_plan_lifecycle_v3.py
*** Test Cases ***
Plan Full Lifecycle Through All Phases
[Documentation] Verify Action->Strategize->Execute->Apply (terminal) end-to-end via PlanLifecycleService
[Tags] lifecycle plan action critical
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} lifecycle-full-cycle cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} lifecycle-full-cycle-ok
Action CRUD Operations Via Service
[Documentation] Verify action create, list, get, archive operations
[Tags] lifecycle action crud
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} action-crud cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} action-crud-ok
Plan Cancellation At Strategize Phase
[Documentation] Verify plans can be cancelled with reason during strategize
[Tags] lifecycle plan cancel
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} plan-cancellation cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-cancellation-ok
Plan Failure And Error State Handling
[Documentation] Verify plan failure sets error state and message correctly
[Tags] lifecycle plan error
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} plan-failure-recovery cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-failure-recovery-ok
Invalid Phase Transitions Raise Correct Errors
[Documentation] Verify that skipping phases or invalid transitions raise PlanNotReadyError
[Tags] lifecycle plan transitions error
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} invalid-transitions cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} invalid-transitions-ok
Phase Transition Validation Model
[Documentation] Verify can_transition function validates all phase transition paths
[Tags] lifecycle plan model
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} phase-transitions cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} phase-transitions-ok
NamespacedName Parsing And String Round Trip
[Documentation] Verify NamespacedName.parse handles local, server, and standalone formats
[Tags] lifecycle model parsing
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} namespaced-name cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} namespaced-name-ok
Action Argument Parsing And Validation
[Documentation] Verify ActionArgument parse from string and validate_arguments on Action
[Tags] lifecycle action validation
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} action-argument cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} action-argument-ok
Full Automation Auto Progresses Through Phases
[Documentation] Verify FULL_AUTOMATION level auto-advances from strategize to execute to apply
[Tags] lifecycle automation full
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} automation-full-auto cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} automation-full-auto-ok
Review Before Apply Pauses At Apply Boundary
[Documentation] Verify REVIEW_BEFORE_APPLY auto-executes but pauses before apply
[Tags] lifecycle automation review
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} automation-review-before-apply cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} automation-review-before-apply-ok
Automation Pause And Resume
[Documentation] Verify pause sets MANUAL and resume restores level
[Tags] lifecycle automation pause resume
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} automation-pause-resume cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} automation-pause-resume-ok
Subplan Config And Failure Handler
[Documentation] Verify SubplanConfig, SubplanStatus, and SubplanFailureHandler integration
[Tags] lifecycle subplan model
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} subplan-model cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} subplan-model-ok
Plan With Subplan Configuration
[Documentation] Verify Plan model accepts subplan config and statuses via service
[Tags] lifecycle subplan plan
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} plan-with-subplans cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-with-subplans-ok
Plan Status Renders Action Name And Automation Profile Provenance
[Documentation] Verify plan status (as_cli_dict) includes action_name and automation profile provenance
[Tags] lifecycle plan status cli
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} plan-status-rendering cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-status-rendering-ok
Action YAML Config Loading And CLI Dict
[Documentation] Verify Action.from_config() loads YAML fields and as_cli_dict() renders them
[Tags] lifecycle action yaml
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} action-yaml-config cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} action-yaml-config-ok