a05f4c69a7
CI / lint (pull_request) Failing after 19s
CI / typecheck (pull_request) Successful in 46s
CI / quality (pull_request) Successful in 34s
CI / security (pull_request) Successful in 1m0s
CI / coverage (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 22s
CI / unit_tests (pull_request) Successful in 7m9s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 17m9s
CI / integration_tests (pull_request) Failing after 23m2s
CI / status-check (pull_request) Failing after 2s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped
Extend DevcontainerDiscoveryResult and discover_devcontainers() to scan .devcontainer/<name>/devcontainer.json patterns (one subdirectory level) in addition to the existing fixed paths. Each named configuration produces a distinct result with config_name set to the subdirectory name (e.g. 'api', 'frontend'). Root-level configs retain config_name=None. - Replace _SCAN_PATHS with _FIXED_SCAN_PATHS for root-level configs - Add glob-based scan of .devcontainer/<name>/devcontainer.json - Add config_name: str | None attribute to DevcontainerDiscoveryResult - Validate config_name (must be non-empty str or None) - Add 8 new Behave scenarios covering named, multiple, mixed, empty cases - Add 4 new Robot Framework integration tests for named config discovery - All existing tests continue to pass (no regression) ISSUES CLOSED: #2615
122 lines
5.6 KiB
Plaintext
122 lines
5.6 KiB
Plaintext
*** Settings ***
|
|
Documentation Integration tests for devcontainer handler CLI round-trip and DAG hierarchy
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER} ${CURDIR}/helper_devcontainer_handler.py
|
|
|
|
*** Test Cases ***
|
|
DevcontainerHandler Protocol Conformance
|
|
[Documentation] Verify DevcontainerHandler satisfies ResourceHandler protocol
|
|
${result}= Run Process ${PYTHON} ${HELPER} protocol-check cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} protocol-check-ok
|
|
|
|
DevcontainerHandler Default Strategy
|
|
[Documentation] Verify DevcontainerHandler uses snapshot strategy
|
|
${result}= Run Process ${PYTHON} ${HELPER} strategy-check cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} strategy-check-ok
|
|
|
|
Devcontainer Discovery Valid Config
|
|
[Documentation] Discover devcontainer from directory with valid config
|
|
${result}= Run Process ${PYTHON} ${HELPER} discovery-valid cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} discovery-valid-ok
|
|
|
|
Devcontainer Discovery Invalid JSON
|
|
[Documentation] Skip invalid devcontainer.json during discovery
|
|
${result}= Run Process ${PYTHON} ${HELPER} discovery-invalid cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} discovery-invalid-ok
|
|
|
|
Devcontainer Discovery Root Config
|
|
[Documentation] Discover root-level .devcontainer.json
|
|
${result}= Run Process ${PYTHON} ${HELPER} discovery-root cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} discovery-root-ok
|
|
|
|
Devcontainer Discovery Non-Trigger Type
|
|
[Documentation] No discovery for non-trigger resource types
|
|
${result}= Run Process ${PYTHON} ${HELPER} discovery-nontrigger cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} discovery-nontrigger-ok
|
|
|
|
Builtin Types Include Devcontainer
|
|
[Documentation] Verify devcontainer types in BUILTIN_NAMES
|
|
${result}= Run Process ${PYTHON} ${HELPER} builtin-types cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} builtin-types-ok
|
|
|
|
DAG Hierarchy Validation
|
|
[Documentation] Verify devcontainer type parent/child DAG constraints
|
|
${result}= Run Process ${PYTHON} ${HELPER} dag-hierarchy cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} dag-hierarchy-ok
|
|
|
|
Handler Resolver Dynamic Import
|
|
[Documentation] Verify resolve_handler loads DevcontainerHandler dynamically
|
|
${result}= Run Process ${PYTHON} ${HELPER} resolver-import cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} resolver-import-ok
|
|
|
|
Discovery Result Validation
|
|
[Documentation] Verify DevcontainerDiscoveryResult validates inputs
|
|
${result}= Run Process ${PYTHON} ${HELPER} result-validation cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} result-validation-ok
|
|
|
|
Devcontainer Discovery Named Single Config
|
|
[Documentation] Discover a single named devcontainer configuration
|
|
${result}= Run Process ${PYTHON} ${HELPER} discovery-named-single cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} discovery-named-single-ok
|
|
|
|
Devcontainer Discovery Named Multiple Configs
|
|
[Documentation] Discover multiple named devcontainer configurations
|
|
${result}= Run Process ${PYTHON} ${HELPER} discovery-named-multiple cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} discovery-named-multiple-ok
|
|
|
|
Devcontainer Discovery Named Mixed Root And Named
|
|
[Documentation] Discover mixed root and named devcontainer configurations
|
|
${result}= Run Process ${PYTHON} ${HELPER} discovery-named-mixed cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} discovery-named-mixed-ok
|
|
|
|
Devcontainer Discovery Named Config Name Attribute
|
|
[Documentation] Verify config_name attribute on DevcontainerDiscoveryResult
|
|
${result}= Run Process ${PYTHON} ${HELPER} discovery-named-config-name-attr cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} discovery-named-config-name-attr-ok
|