Files
cleveragents-core/robot/initial_next_command_test.robot

76 lines
2.7 KiB
Plaintext

*** Settings ***
Documentation Test !next command with fresh context (writing_stage: null)
Library Process
Library OperatingSystem
Library String
Resource ${CURDIR}/v2_paths.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${PYTHON} python
${CONFIG_FILE} ${CURDIR}/../examples/scientific_paper_writer.yaml
${CONTEXT_DIR} ${TEMPDIR}/initial_next_test_contexts
${TEST_ID} ${EMPTY}
*** Test Cases ***
Test Next Command With Null Writing Stage
[Documentation] Test that !next works when writing_stage is null (fresh context)
[Tags] integration bugfix commands slow
[Timeout] 1 minute
${ctx}= Set Variable initial_next_${TEST_ID}
# Run !next as the very first command with a fresh context
# This should advance from null (default intro) to discovery stage
Log Running !next command with fresh context...
${result}= Run Process ${PYTHON} -m cleveragents actor run
... -c ${CONFIG_FILE}
... --context ${ctx}
... --context-dir ${CONTEXT_DIR}
... --unsafe
... --allow-rxpy-in-run-mode
... -p !next discovery
... stderr=STDOUT
... timeout=20s
# Should not produce an error
Should Not Contain ${result.stdout} Error: Current stage 'None' is invalid
Should Be Equal As Integers ${result.rc} 0
# Verify stage was updated in the context by checking !stage command
${result}= Run Process ${PYTHON} -m cleveragents actor run
... -c ${CONFIG_FILE}
... --context ${ctx}
... --context-dir ${CONTEXT_DIR}
... --unsafe
... --allow-rxpy-in-run-mode
... -p !stage
... stderr=STDOUT
... timeout=20s
Should Contain ${result.stdout} discovery
Log Test completed successfully
*** Keywords ***
Setup Test Environment
${timestamp}= Get Time epoch
Set Suite Variable ${TEST_ID} ${timestamp}
Create Directory ${CONTEXT_DIR}
Log Test environment setup complete with ID: ${TEST_ID}
Cleanup Test Environment
Run Keyword And Ignore Error Remove Directory ${CONTEXT_DIR} recursive=True
Log Test environment cleaned up
Should Contain Any
[Arguments] ${text} @{patterns}
[Documentation] Check if text contains at least one of the patterns
FOR ${pattern} IN @{patterns}
${status}= Run Keyword And Return Status Should Contain ${text} ${pattern} ignore_case=True
IF ${status} RETURN
END
Fail Text does not contain any of: @{patterns}