*** Settings ***
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}/paper_basic_contexts
${CONTEXT_NAME}   ${EMPTY}
${TEST_ID}        ${EMPTY}

*** Test Cases ***
Scientific Paper Writer Basic Integration Test
    [Documentation]    Minimal integration test to verify scientific paper writer works with real APIs
    [Tags]    integration    code_blocks
    [Timeout]    2 minutes

    # Test 1: Basic intro response (uses OpenAI API)
    ${result}=    Run Process    ${PYTHON}    -m    cleveragents    actor    run
    ...    -c    ${CONFIG_FILE}
    ...    --context    ${CONTEXT_NAME}
    ...    --context-dir    ${CONTEXT_DIR}
    ...    --unsafe
    ...    --allow-rxpy-in-run-mode
    ...    test-actor    Hello
    ...    stderr=DEVNULL
    ...    timeout=120s    on_timeout=kill

    Should Contain    ${result.stdout}    Paper Writer
    Log    Intro test passed

    # Test 2: Command handler (no API needed)
    ${result}=    Run Process    ${PYTHON}    -m    cleveragents    actor    run
    ...    -c    ${CONFIG_FILE}
    ...    --context    ${CONTEXT_NAME}
    ...    --context-dir    ${CONTEXT_DIR}
    ...    --unsafe
    ...    --allow-rxpy-in-run-mode
    ...    test-actor    !help
    ...    stderr=DEVNULL
    ...    timeout=120s    on_timeout=kill

    Should Contain    ${result.stdout}    Available Commands
    Log    Command handler test passed

    # Test 3: Echo test to verify framework works
    ${result}=    Run Process    ${PYTHON}    -m    cleveragents    actor    run
    ...    -c    ${V2_CONFIG_DIR}/simple_echo_config.yaml
    ...    --unsafe
    ...    --allow-rxpy-in-run-mode
    ...    test-actor    Test message
    ...    stderr=DEVNULL
    ...    timeout=120s    on_timeout=kill

    Should Contain    ${result.stdout}    Test message
    Log    Echo test passed

    Log    All integration tests passed successfully

*** Keywords ***
Setup Test Environment
    ${timestamp}=    Get Time    epoch
    Set Suite Variable    ${TEST_ID}    ${timestamp}
    Set Suite Variable    ${CONTEXT_NAME}    test_paper_simple_${TEST_ID}
    Set Suite Variable    ${CONTEXT_DIR}    ${TEMPDIR}/paper_basic_contexts
    Create Directory    ${CONTEXT_DIR}
    Log    Test environment setup complete with ID: ${TEST_ID}

Cleanup Test Environment
    Run Keyword If    '${CONTEXT_DIR}' != '${EMPTY}'    Remove Directory    ${CONTEXT_DIR}    recursive=True
    Log    Test environment cleaned up

Should Contain Any
    [Arguments]    ${text}    @{patterns}
    FOR    ${pattern}    IN    @{patterns}
        ${status}=    Run Keyword And Return Status    Should Contain    ${text}    ${pattern}
        IF    ${status}    RETURN
    END
    Fail    Text does not contain any of: @{patterns}

