Files
cleveragents-core/robot/config_resolution.robot

74 lines
3.4 KiB
Plaintext

*** Settings ***
Documentation End-to-end tests for Config Service with multi-level resolution
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} ${CURDIR}/helper_config_resolution.py
*** Test Cases ***
Config Resolution Returns Default Value
[Documentation] Verify that resolving a key with no overrides returns the default
${result}= Run Process ${PYTHON} ${HELPER} resolve-default cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} config-resolution-default-ok
Config Resolution Uses Global Config File
[Documentation] Verify that a value set in the global TOML file overrides default
${result}= Run Process ${PYTHON} ${HELPER} resolve-global cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} config-resolution-global-ok
Config Resolution Uses Environment Variable
[Documentation] Verify that env var overrides global config
${result}= Run Process ${PYTHON} ${HELPER} resolve-env cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} config-resolution-env-ok
Config Resolution Uses CLI Flag
[Documentation] Verify that CLI flag has highest priority
${result}= Run Process ${PYTHON} ${HELPER} resolve-cli cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} config-resolution-cli-ok
Config Resolution Rejects Unknown Key
[Documentation] Verify that unknown keys raise ValueError
${result}= Run Process ${PYTHON} ${HELPER} resolve-unknown-key cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} config-resolution-unknown-key-ok
Config Resolution Performs Type Coercion
[Documentation] Verify that string env vars are coerced to proper types
${result}= Run Process ${PYTHON} ${HELPER} resolve-type-coercion cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} config-resolution-type-coercion-ok
Config Registry Contains Expected Keys
[Documentation] Verify that the registry has the expected key catalog
${result}= Run Process ${PYTHON} ${HELPER} registry-keys cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} config-resolution-registry-ok
Config Env Var Naming Convention
[Documentation] Verify CLEVERAGENTS_<SECTION>_<KEY> naming convention
${result}= Run Process ${PYTHON} ${HELPER} env-var-convention cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} config-resolution-env-convention-ok