Files
cleveragents-core/robot/persistence_lifecycle.robot
T

71 lines
3.9 KiB
Plaintext

*** Settings ***
Documentation End-to-end persistence lifecycle tests covering full phase
... transitions, process restart simulation, plan status reopen,
... concurrent CLI access safeguards, argument/invariant ordering,
... and project link persistence.
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER_SCRIPT} robot/helper_persistence_lifecycle.py
*** Test Cases ***
Plan Full Lifecycle Phase Transitions
[Documentation] Create action and plan, walk through every phase
... (action -> strategize -> execute -> apply) and verify
... terminal state is reached and persisted.
[Tags] database plan lifecycle persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} full-lifecycle cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} full-lifecycle-ok
Process Restart Simulation
[Documentation] Write plan to file-backed SQLite, close the connection
... entirely, reopen from disk and verify all plan fields
... (phase, state, description, project links) survive.
[Tags] database plan restart persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} restart-simulation cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} restart-simulation-ok
Reopen Plan Status After Restart
[Documentation] Close DB, reopen, and verify plan phase/state,
... automation level, and tags are unchanged.
[Tags] database plan reopen persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} reopen-plan-status cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} reopen-plan-status-ok
Concurrent CLI Access Safeguards
[Documentation] Open two independent sessions against the same DB file
... and verify committed plans are visible across sessions.
[Tags] database plan concurrent persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} concurrent-access cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} concurrent-access-ok
Stored Arguments Ordering Persistence
[Documentation] Create an action with 4 ordered arguments, persist,
... retrieve and verify positional ordering is preserved.
[Tags] database action arguments ordering
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} arguments-ordering cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} arguments-ordering-ok
Stored Invariants Ordering Persistence
[Documentation] Create an action with 3 ordered invariants, persist,
... retrieve and verify list ordering is preserved.
[Tags] database action invariants ordering
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} invariants-ordering cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} invariants-ordering-ok
Project Links Persistence Through Restart
[Documentation] Create plan with 2 project links, close DB, reopen,
... verify both links survive the restart cycle.
[Tags] database plan project-links persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} project-links cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} project-links-ok