*** Settings *** Documentation CLI Plan and Context Commands - Robot Framework Tests ... Comprehensive testing of plan and context workflows Resource 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} Should Be Equal As Integers ${result.rc} 0 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=30s 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=30s 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=30s 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=10s 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} Should Be Equal As Integers ${result.rc} 0 # Verify context is empty ${result}= Run Process ${PYTHON} -m cleveragents context list ... cwd=${TEST_DIR} 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} Should Not Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} No project found [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=30s 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=30s 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} Should Be Equal As Integers ${result.rc} 0