Files
cleveragents-core/robot/sandbox_integration.robot
T
brent.edwards e8aa5ac268
CI / lint (pull_request) Successful in 15s
CI / typecheck (pull_request) Successful in 28s
CI / security (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 15s
CI / integration_tests (pull_request) Failing after 6m25s
CI / build (pull_request) Successful in 15s
CI / unit_tests (pull_request) Successful in 6m52s
CI / docker (pull_request) Successful in 9s
CI / coverage (pull_request) Successful in 5m5s
fix(ci): restore venv PATH, use absolute resource paths, and add timeouts in robot tests
- Restore session.env["PATH"] in integration_tests nox session to ensure
  Run Process uses venv Python instead of system Python
- Convert bare Resource references to ${CURDIR}/ absolute paths across
  30 robot files to fix CI resolution failures
- Add timeout=30s to all Run Process calls in rxpy_route_validation.robot
  to prevent hanging tests
- Tag 2 rxpy tests as slow (require running actors unavailable on CI)
- Fix LangGraph test to use correct config file (LANGGRAPH_CONFIG)
- All 204 tests pass (4 excluded: 2 slow + 2 discovery)
2026-02-13 02:42:57 +00:00

82 lines
4.4 KiB
Plaintext

*** Settings ***
Documentation Integration tests for sandbox infrastructure: protocol, NoSandbox,
... factory, manager, and merge strategies.
... Covers commit 548a09f stages B3.1-B3.8 sandbox infrastructure.
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER_SCRIPT} robot/helper_sandbox_integration.py
*** Test Cases ***
Sandbox Status State Machine Transitions
[Documentation] Verify SandboxStatus enum validates all valid/invalid state transitions
[Tags] sandbox protocol transitions
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} status-transitions cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} sandbox-status-transitions-ok
NoSandbox Full Lifecycle
[Documentation] Verify NoSandbox create -> get_path -> commit -> cleanup with protocol compliance
[Tags] sandbox nosandbox lifecycle
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} no-sandbox-lifecycle cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} no-sandbox-lifecycle-ok
NoSandbox Rollback Always Raises
[Documentation] Verify NoSandbox.rollback raises SandboxRollbackError (changes are immediate)
[Tags] sandbox nosandbox rollback
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} no-sandbox-rollback cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} no-sandbox-rollback-ok
Factory Creates NoSandbox For None Strategy
[Documentation] Verify SandboxFactory creates NoSandbox for 'none' strategy and rejects unsupported
[Tags] sandbox factory create
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} factory-create-none cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} factory-create-none-ok
Factory Reports Supported Strategies Per Resource Type
[Documentation] Verify SandboxFactory.get_supported_strategies returns correct strategy lists
[Tags] sandbox factory strategies
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} factory-supported cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} factory-supported-ok
Manager Lifecycle With Get Or Create And Commit All
[Documentation] Verify SandboxManager lazy creation, deduplication, commit_all, and cleanup_all
[Tags] sandbox manager lifecycle
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} manager-lifecycle cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} manager-lifecycle-ok
Manager Handles Multiple Resources Per Plan
[Documentation] Verify SandboxManager tracks multiple sandboxes per plan correctly
[Tags] sandbox manager multiple
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} manager-multiple-resources cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} manager-multiple-resources-ok
Sequential Merge Strategy Returns Theirs
[Documentation] Verify SequentialMergeStrategy always picks theirs (last-write-wins)
[Tags] sandbox merge sequential
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} sequential-merge cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} sequential-merge-ok
JSON Merge Strategy Deep Merges Objects
[Documentation] Verify JsonMergeStrategy performs deep recursive merge on JSON objects
[Tags] sandbox merge json
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} json-merge cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} json-merge-ok
JSON Merge Strategy Concat Arrays Mode
[Documentation] Verify JsonMergeStrategy concatenates arrays in concat mode
[Tags] sandbox merge json concat
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} json-merge-concat cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} json-merge-concat-ok