Files
temp/robot/decision_persistence.robot
T
khyari hamza 27bef69ddd feat(decision): add decision persistence
Add decision persistence layer with DecisionRepository, DecisionModel,
and Alembic migration. Includes tree queries (BFS traversal via deque,
path-to-root), superseded lookup, ordered decision path retrieval,
concrete Decision type annotations (via TYPE_CHECKING), and comprehensive
test coverage (Behave BDD, Robot Framework, ASV benchmarks). Updated
database_schema.md, CHANGELOG.md, and CONTRIBUTORS.md.

ISSUES CLOSED: #171
2026-02-26 13:40:07 +00:00

66 lines
3.3 KiB
Plaintext

*** Settings ***
Documentation Smoke tests for decision persistence via DecisionRepository
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER_SCRIPT} robot/helper_decision_persistence.py
*** Test Cases ***
Create And Retrieve Root Decision
[Documentation] Create a root prompt_definition decision, persist, retrieve
[Tags] database decision persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} create-retrieve cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} create-retrieve-ok
Create Child Decision With Parent
[Documentation] Create a child strategy_choice under a root decision
[Tags] database decision persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} create-child cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} create-child-ok
JSON Fields Round-Trip
[Documentation] Persist alternatives, context snapshot, artifacts and verify round-trip
[Tags] database decision json persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} json-roundtrip cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} json-roundtrip-ok
Get Decisions By Plan
[Documentation] Retrieve all decisions for a plan in sequence order
[Tags] database decision query persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} get-by-plan cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} get-by-plan-ok
Decision Tree BFS Traversal
[Documentation] Build a 3-level tree and retrieve via BFS
[Tags] database decision tree persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} tree-bfs cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} tree-bfs-ok
Path To Root Traversal
[Documentation] Walk from a leaf decision up to the root
[Tags] database decision tree persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} path-to-root cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} path-to-root-ok
Superseded By Update
[Documentation] Mark a decision as superseded and verify
[Tags] database decision correction persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} superseded cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} superseded-ok
Delete Decision
[Documentation] Delete a decision and verify it is gone
[Tags] database decision persistence
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} delete cwd=${WORKSPACE} timeout=30s
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} delete-ok