*** Settings *** Documentation CLI Plan and Context Commands - Robot Framework Tests ... Comprehensive testing of plan and context workflows Resource ${CURDIR}/common.resource Library OperatingSystem Library Process Library String Suite Setup Run Keywords Setup Test Environment AND Set Environment Variable CLEVERAGENTS_AUTO_APPLY_MIGRATIONS true *** Variables *** # ${PYTHON} will be set in Setup Test Environment from common.resource # Make sure to call Setup Test Environment before using ${PYTHON} ${TEST_DIR} ${TEMPDIR}${/}cleveragents_plan_context_test_${SUITE NAME} ${PROJECT_NAME} test-project *** Test Cases *** Initialize New Project [Documentation] Test cleveragents init command [Setup] Setup Test Directory ${result}= Run Process ${PYTHON} -m cleveragents init ${PROJECT_NAME} ... cwd=${TEST_DIR} env:CLEVERAGENTS_AUTO_APPLY_MIGRATIONS=true stderr=STDOUT timeout=60s Should Be Equal As Integers ${result.rc} 0 Init failed: ${result.stdout} Should Exist ${TEST_DIR}${/}.cleveragents Should Exist ${TEST_DIR}${/}.cleveragents${/}db.sqlite [Teardown] Cleanup Test Directory Add Files To Context [Documentation] Test context-load command [Setup] Initialize Test Project # Create test files Create File ${TEST_DIR}${/}test.py print('hello') Create File ${TEST_DIR}${/}main.py def main(): pass # Add files to context ${result}= Run Process ${PYTHON} -m cleveragents context-load test.py main.py ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 # Verify files are in context ${result}= Run Process ${PYTHON} -m cleveragents context list ... cwd=${TEST_DIR} Should Contain ${result.stdout} test.py Should Contain ${result.stdout} main.py [Teardown] Cleanup Test Directory Create Plan With Tell [Documentation] Test tell command [Setup] Initialize Test Project ${result}= Run Process ${PYTHON} -m cleveragents tell Add error handling ... cwd=${TEST_DIR} timeout=60s Should Be Equal As Integers ${result.rc} 0 # Verify plan was created with correct name derived from prompt ${result}= Run Process ${PYTHON} -m cleveragents plan current ... cwd=${TEST_DIR} Should Contain ${result.stdout} add_error_handling [Teardown] Cleanup Test Directory Build Plan [Documentation] Test build command [Setup] Initialize Test Project With Plan ${result}= Run Process ${PYTHON} -m cleveragents build ... cwd=${TEST_DIR} env:CLEVERAGENTS_TESTING_USE_MOCK_AI=true timeout=60s Should Be Equal As Integers ${result.rc} 0 [Teardown] Cleanup Test Directory Apply Plan Changes [Documentation] Test apply command [Setup] Initialize Test Project With Built Plan ${result}= Run Process ${PYTHON} -m cleveragents apply --yes ... cwd=${TEST_DIR} timeout=60s Should Be Equal As Integers ${result.rc} 0 [Teardown] Cleanup Test Directory Create New Empty Plan [Documentation] Test plan new command [Setup] Initialize Test Project ${result}= Run Process ${PYTHON} -m cleveragents plan new feature-plan ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 # Verify new plan is current ${result}= Run Process ${PYTHON} -m cleveragents plan current ... cwd=${TEST_DIR} Should Contain ${result.stdout} feature-plan [Teardown] Cleanup Test Directory Show Current Plan [Documentation] Test plan current command [Setup] Initialize Test Project ${result}= Run Process ${PYTHON} -m cleveragents plan current ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} main [Teardown] Cleanup Test Directory List All Plans [Documentation] Test plan list command [Setup] Initialize Test Project With Multiple Plans ${result}= Run Process ${PYTHON} -m cleveragents plan list ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} main Should Contain ${result.stdout} feature-1 Should Contain ${result.stdout} feature-2 [Teardown] Cleanup Test Directory Switch Between Plans [Documentation] Test plan cd command [Setup] Initialize Test Project With Multiple Plans # Switch to feature-1 ${result}= Run Process ${PYTHON} -m cleveragents plan cd feature-1 ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 # Verify switch ${result}= Run Process ${PYTHON} -m cleveragents plan current ... cwd=${TEST_DIR} Should Contain ${result.stdout} feature-1 [Teardown] Cleanup Test Directory Continue Working On Plan [Documentation] Test plan continue command [Setup] Initialize Test Project With Plan ${result}= Run Process ${PYTHON} -m cleveragents plan continue Also add logging ... cwd=${TEST_DIR} env:CLEVERAGENTS_TESTING_USE_MOCK_AI=true timeout=30s Should Be Equal As Integers ${result.rc} 0 [Teardown] Cleanup Test Directory List Context Files [Documentation] Test context list command [Setup] Initialize Test Project With Context ${result}= Run Process ${PYTHON} -m cleveragents context list ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} test.py Should Contain ${result.stdout} utils.py [Teardown] Cleanup Test Directory Show Context Content [Documentation] Test context show command [Setup] Initialize Test Project With Context # Show specific file content ${result}= Run Process ${PYTHON} -m cleveragents context show test.py ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} def hello # Also test showing summary (without file argument) ${result}= Run Process ${PYTHON} -m cleveragents context show ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} Context Summary Should Contain ${result.stdout} Total files: 2 [Teardown] Cleanup Test Directory Remove File From Context [Documentation] Test context rm command [Setup] Initialize Test Project With Context # Remove test.py ${result}= Run Process ${PYTHON} -m cleveragents context rm test.py ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 # Verify removal ${result}= Run Process ${PYTHON} -m cleveragents context list ... cwd=${TEST_DIR} Should Not Contain ${result.stdout} test.py Should Contain ${result.stdout} utils.py [Teardown] Cleanup Test Directory Clear All Context [Documentation] Test context clear command [Setup] Initialize Test Project With Context ${result}= Run Process ${PYTHON} -m cleveragents context clear --yes ... cwd=${TEST_DIR} env:CLEVERAGENTS_AUTO_APPLY_MIGRATIONS=true stderr=STDOUT timeout=60s Should Be Equal As Integers ${result.rc} 0 Context clear failed: ${result.stdout} # Verify context is empty ${result}= Run Process ${PYTHON} -m cleveragents context list ... cwd=${TEST_DIR} env:CLEVERAGENTS_AUTO_APPLY_MIGRATIONS=true stderr=STDOUT Should Not Contain ${result.stdout} test.py Should Not Contain ${result.stdout} utils.py [Teardown] Cleanup Test Directory Command Error Handling [Documentation] Test error cases for commands [Setup] Setup Test Directory # Try to use command without project ${result}= Run Process ${PYTHON} -m cleveragents plan tell test ... cwd=${TEST_DIR} stderr=STDOUT Should Not Be Equal As Integers ${result.rc} 0 [Teardown] Cleanup Test Directory *** Keywords *** Setup Test Directory [Documentation] Create clean test directory Run Keyword And Ignore Error Remove Directory ${TEST_DIR} recursive=True Create Directory ${TEST_DIR} Cleanup Test Directory [Documentation] Remove test directory and cleanup processes # Clean up test directory Run Keyword And Ignore Error Remove Directory ${TEST_DIR} recursive=True Initialize Test Project [Documentation] Initialize a test project Setup Test Directory ${result}= Run Process ${PYTHON} -m cleveragents init ${PROJECT_NAME} ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 Initialize Test Project With Plan [Documentation] Initialize project and create a plan Initialize Test Project ${result}= Run Process ${PYTHON} -m cleveragents tell Test instruction ... cwd=${TEST_DIR} env:CLEVERAGENTS_TESTING_USE_MOCK_AI=true timeout=60s Should Be Equal As Integers ${result.rc} 0 Initialize Test Project With Built Plan [Documentation] Initialize project with a built plan Initialize Test Project With Plan ${result}= Run Process ${PYTHON} -m cleveragents build ... cwd=${TEST_DIR} env:CLEVERAGENTS_TESTING_USE_MOCK_AI=true timeout=60s Should Be Equal As Integers ${result.rc} 0 Initialize Test Project With Multiple Plans [Documentation] Initialize project with multiple plans Initialize Test Project ${result}= Run Process ${PYTHON} -m cleveragents plan new feature-1 ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 ${result}= Run Process ${PYTHON} -m cleveragents plan new feature-2 ... cwd=${TEST_DIR} Should Be Equal As Integers ${result.rc} 0 Initialize Test Project With Context [Documentation] Initialize project and add files to context Initialize Test Project Create File ${TEST_DIR}${/}test.py def hello(): pass Create File ${TEST_DIR}${/}utils.py import os ${result}= Run Process ${PYTHON} -m cleveragents context-load test.py utils.py ... cwd=${TEST_DIR} env:CLEVERAGENTS_AUTO_APPLY_MIGRATIONS=true stderr=STDOUT Should Be Equal As Integers ${result.rc} 0 context-load failed: ${result.stdout}