b122ec7ed5
CI / lint (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 51s
CI / typecheck (pull_request) Successful in 1m0s
CI / security (pull_request) Successful in 55s
CI / build (pull_request) Successful in 25s
CI / helm (pull_request) Successful in 32s
CI / push-validation (pull_request) Successful in 26s
CI / e2e_tests (pull_request) Successful in 3m38s
CI / integration_tests (pull_request) Successful in 6m42s
CI / unit_tests (pull_request) Successful in 8m19s
CI / docker (pull_request) Successful in 13s
CI / coverage (pull_request) Successful in 15m23s
CI / status-check (pull_request) Successful in 2s
Remove the local ${PYTHON} python (and python3) variable definitions from
the *** Variables *** sections of all affected robot files. These local
definitions were overriding the pabot-injected venv Python path passed via
--variable PYTHON:/path/to/venv/python, causing tests to use the system
Python (which lacks required packages like structlog, sqlalchemy, etc.)
instead of the nox venv Python.
The correct ${PYTHON} value is already set by Setup Test Environment in
common.resource via sys.executable, and pabot passes it via --variable.
The local fallback definitions are redundant and harmful in parallel runs.
Audit found 56 robot files with the pattern (more than the 9 originally
identified in the issue). All occurrences have been removed.
ISSUES CLOSED: #1309
120 lines
6.4 KiB
Plaintext
120 lines
6.4 KiB
Plaintext
*** Settings ***
|
|
Documentation Integration tests for enhanced version, info, diagnostics commands
|
|
Resource ${CURDIR}/common.resource
|
|
Library Process
|
|
Library OperatingSystem
|
|
Library String
|
|
Library Collections
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Keywords ***
|
|
Run CLI With Clean Home
|
|
[Documentation] Run a CLI command with a temp HOME to avoid stale config
|
|
[Arguments] @{cmd}
|
|
${tmpdir}= Evaluate __import__('tempfile').mkdtemp(prefix='cli_core_')
|
|
${result}= Run Process @{cmd} timeout=120s on_timeout=kill env:HOME=${tmpdir}
|
|
RETURN ${result}
|
|
|
|
*** Test Cases ***
|
|
Version Command Default Rich Format
|
|
[Documentation] Version command with default (rich) format shows version string
|
|
${result}= Run Process ${PYTHON} -m cleveragents version timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} 1.0.0
|
|
Should Contain ${result.stdout} CleverAgents
|
|
|
|
Version Command JSON Format
|
|
[Documentation] Version command with global --format json returns valid JSON
|
|
${result}= Run Process ${PYTHON} -m cleveragents --format json version timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} "version": "1.0.0"
|
|
Should Contain ${result.stdout} "schema": "v3"
|
|
Should Contain ${result.stdout} "channel": "stable"
|
|
Should Contain ${result.stdout} "python"
|
|
Should Contain ${result.stdout} "dependencies"
|
|
Should Contain ${result.stdout} "build_date"
|
|
Should Contain ${result.stdout} "commit"
|
|
|
|
Version Command Plain Format
|
|
[Documentation] Version command with global --format plain returns key-value pairs
|
|
${result}= Run Process ${PYTHON} -m cleveragents --format plain version timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} version: 1.0.0
|
|
Should Contain ${result.stdout} schema: v3
|
|
|
|
Version Command YAML Format
|
|
[Documentation] Version command with global --format yaml returns YAML
|
|
${result}= Run Process ${PYTHON} -m cleveragents --format yaml version timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} version: 1.0.0
|
|
Should Contain ${result.stdout} schema: v3
|
|
|
|
Info Command Default Rich Format
|
|
[Documentation] Info command with default (rich) format shows environment details
|
|
${result}= Run Process ${PYTHON} -m cleveragents info timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} Environment
|
|
Should Contain ${result.stdout} Runtime
|
|
|
|
Info Command JSON Format
|
|
[Documentation] Info command with global --format json returns structured data
|
|
${result}= Run CLI With Clean Home ${PYTHON} -m cleveragents --format json info
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} "version": "1.0.0"
|
|
Should Contain ${result.stdout} "data_dir"
|
|
Should Contain ${result.stdout} "database"
|
|
Should Contain ${result.stdout} "server_mode"
|
|
|
|
Info Command Plain Format
|
|
[Documentation] Info command with global --format plain returns key-value pairs
|
|
${result}= Run CLI With Clean Home ${PYTHON} -m cleveragents --format plain info
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} version: 1.0.0
|
|
Should Contain ${result.stdout} server_mode:
|
|
|
|
Diagnostics Command Default Rich Format
|
|
[Documentation] Diagnostics command with default (rich) format runs checks
|
|
${result}= Run Process ${PYTHON} -m cleveragents diagnostics timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} Checks
|
|
Should Contain ${result.stdout} Summary
|
|
|
|
Diagnostics Command JSON Format
|
|
[Documentation] Diagnostics command with global --format json returns structured data
|
|
${result}= Run Process ${PYTHON} -m cleveragents --format json diagnostics timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} "checks"
|
|
Should Contain ${result.stdout} "summary"
|
|
Should Contain ${result.stdout} "recommendations"
|
|
Should Contain ${result.stdout} "total"
|
|
Should Contain ${result.stdout} "warnings"
|
|
Should Contain ${result.stdout} "errors"
|
|
|
|
Diagnostics Command Plain Format
|
|
[Documentation] Diagnostics command with global --format plain returns key-value pairs
|
|
${result}= Run Process ${PYTHON} -m cleveragents --format plain diagnostics timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} checks:
|
|
Should Contain ${result.stdout} summary:
|
|
|
|
Diagnostics Command Check Flag Returns Valid Exit Code
|
|
[Documentation] Diagnostics --check exits 0 when no critical errors are found.
|
|
... Disk-space errors are tolerated since CI runners may have low disk.
|
|
${result}= Run Process ${PYTHON} -m cleveragents --format json diagnostics --check timeout=120s on_timeout=kill
|
|
Should Contain ${result.stdout} "checks"
|
|
Should Contain ${result.stdout} "has_errors"
|
|
# Accept exit code 0 (clean) or 1 if the only error is disk space (CI environment)
|
|
IF ${result.rc} != 0
|
|
Should Contain ${result.stdout} Disk space Diagnostics --check failed with non-disk error: ${result.stdout}
|
|
END
|
|
|
|
Diagnostics Command Performance
|
|
[Documentation] Diagnostics command completes within acceptable time
|
|
${start}= Get Time epoch
|
|
${result}= Run Process ${PYTHON} -m cleveragents --format json diagnostics timeout=120s on_timeout=kill
|
|
${end}= Get Time epoch
|
|
${duration}= Evaluate ${end} - ${start}
|
|
Should Be True ${duration} < 90 Diagnostics took too long: ${duration}s
|
|
Should Be Equal As Integers ${result.rc} 0
|