fix: Fix e2e test JSON field parsing errors
CI / push-validation (pull_request) Failing after 23s
CI / lint (pull_request) Successful in 29s
CI / quality (pull_request) Successful in 36s
CI / helm (pull_request) Successful in 34s
CI / build (pull_request) Successful in 37s
CI / typecheck (pull_request) Successful in 1m1s
CI / security (pull_request) Successful in 1m2s
CI / coverage (pull_request) Failing after 3m17s
CI / e2e_tests (pull_request) Failing after 5m10s
CI / integration_tests (pull_request) Failing after 22m41s
CI / unit_tests (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
CI / push-validation (pull_request) Failing after 23s
CI / lint (pull_request) Successful in 29s
CI / quality (pull_request) Successful in 36s
CI / helm (pull_request) Successful in 34s
CI / build (pull_request) Successful in 37s
CI / typecheck (pull_request) Successful in 1m1s
CI / security (pull_request) Successful in 1m2s
CI / coverage (pull_request) Failing after 3m17s
CI / e2e_tests (pull_request) Failing after 5m10s
CI / integration_tests (pull_request) Failing after 22m41s
CI / unit_tests (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
Fixed multiple issues in e2e tests related to JSON parsing: 1. Fixed doubled 'Safe Parse Json Field With Nested Support With Nested Support' that occurred from previous find-replace operation 2. Updated all field accesses to use 'data.' prefix for the new JSON structure: - config get commands now use data.value - plan status fields now use data.phase, data.processing_state, etc. - automation_profile accesses now use data.automation_profile 3. Fixed WF04 tree parsing to extract data field before counting decision nodes The remaining test failures (WF18 container-instance command) appear to be functional issues not related to JSON parsing.
This commit is contained in:
@@ -62,7 +62,7 @@ Plan Lifecycle Assertions
|
||||
[Documentation] Assert plan lifecycle output after successful plan use.
|
||||
[Arguments] ${plan_use}
|
||||
Output Should Contain ${plan_use} plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support With Nested Support ${plan_use.stdout} data.plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support ${plan_use.stdout} data.plan_id
|
||||
Should Not Be Empty ${plan_id} Could not parse plan_id from plan use output
|
||||
Verify Plan In List ${plan_id}
|
||||
|
||||
@@ -82,7 +82,7 @@ Guard Enforcement Assertions
|
||||
[Arguments] ${plan_use} ${expected_profile}=manual
|
||||
Output Should Contain ${plan_use} plan_id
|
||||
# Verify the resolved automation profile matches expectation (P2-24)
|
||||
${resolved_profile}= Safe Parse Json Field With Nested Support ${plan_use.stdout} automation_profile
|
||||
${resolved_profile}= Safe Parse Json Field With Nested Support ${plan_use.stdout} data.automation_profile
|
||||
IF '${resolved_profile}' != ''
|
||||
Should Be Equal As Strings ${resolved_profile} ${expected_profile}
|
||||
END
|
||||
@@ -102,7 +102,7 @@ Full Flow Apply Step
|
||||
IF ${apply.rc} == 0
|
||||
Output Should Contain ${apply} ${plan_id}
|
||||
# Verify the plan actually transitioned — check for apply-phase indicators
|
||||
${apply_phase}= Safe Parse Json Field With Nested Support ${apply.stdout} phase
|
||||
${apply_phase}= Safe Parse Json Field With Nested Support ${apply.stdout} data.phase
|
||||
IF '${apply_phase}' != ''
|
||||
Should Contain ${apply_phase.lower()} apply Plan phase should indicate apply after apply
|
||||
END
|
||||
@@ -121,7 +121,7 @@ M6 E2E Session Lifecycle
|
||||
Should Not Be Empty ${create.stdout}
|
||||
Output Should Contain ${create} session_id
|
||||
# Parse session_id from JSON output (handle potential leading non-JSON output)
|
||||
${session_id}= Safe Parse Json Field With Nested Support With Nested Support ${create.stdout} data.session_id
|
||||
${session_id}= Safe Parse Json Field With Nested Support ${create.stdout} data.session_id
|
||||
Set Test Variable ${session_id}
|
||||
Should Not Be Empty ${session_id}
|
||||
# List sessions — should include the new one
|
||||
@@ -178,7 +178,7 @@ M6 E2E Config Automation Profile
|
||||
# Get and verify via JSON — parse the value field for precise assertion
|
||||
${get_result}= Run CleverAgents Command config get core.automation-profile --format json
|
||||
Should Be Equal As Integers ${get_result.rc} 0
|
||||
${config_value}= Safe Parse Json Field With Nested Support ${get_result.stdout} value
|
||||
${config_value}= Safe Parse Json Field With Nested Support ${get_result.stdout} data.value
|
||||
Should Be Equal As Strings ${config_value} ci
|
||||
# Reset to default (manual) is handled by [Teardown].
|
||||
|
||||
@@ -296,7 +296,7 @@ M6 E2E Profile Precedence Plan Overrides Global
|
||||
${set_global}= Run CleverAgents Command config set core.automation-profile review --format json
|
||||
Should Be Equal As Integers ${set_global.rc} 0
|
||||
${get_global}= Run CleverAgents Command config get core.automation-profile --format json
|
||||
${global_value}= Safe Parse Json Field With Nested Support ${get_global.stdout} value
|
||||
${global_value}= Safe Parse Json Field With Nested Support ${get_global.stdout} data.value
|
||||
Should Be Equal As Strings ${global_value} review
|
||||
# Setup resources and project
|
||||
${proj_name}= Setup Plan Test Resources prec
|
||||
@@ -306,7 +306,7 @@ M6 E2E Profile Precedence Plan Overrides Global
|
||||
Should Be Equal As Integers ${plan_use.rc} 0
|
||||
... plan use failed (rc=${plan_use.rc}): ${plan_use.stderr}
|
||||
# Parse automation_profile from plan output: must be "trusted", NOT "review"
|
||||
${resolved_profile}= Safe Parse Json Field With Nested Support ${plan_use.stdout} automation_profile
|
||||
${resolved_profile}= Safe Parse Json Field With Nested Support ${plan_use.stdout} data.automation_profile
|
||||
IF '${resolved_profile}' != ''
|
||||
Should Be Equal As Strings ${resolved_profile} trusted
|
||||
Should Not Be Equal As Strings ${resolved_profile} review
|
||||
@@ -332,7 +332,7 @@ M6 E2E Event Queue Via Plan Lifecycle Transitions
|
||||
# P0-2: Fail (not Skip) when API keys are present but plan use fails.
|
||||
Should Be Equal As Integers ${plan_use.rc} 0
|
||||
... plan use failed (rc=${plan_use.rc}): ${plan_use.stderr}
|
||||
${plan_id}= Safe Parse Json Field With Nested Support With Nested Support ${plan_use.stdout} data.plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support ${plan_use.stdout} data.plan_id
|
||||
Should Not Be Empty ${plan_id} Could not parse plan_id from plan use output
|
||||
# 2. Verify plan appears in list (proves creation event was processed)
|
||||
Verify Plan In List ${plan_id}
|
||||
@@ -340,8 +340,8 @@ M6 E2E Event Queue Via Plan Lifecycle Transitions
|
||||
${status1}= Run CleverAgents Command plan status ${plan_id} --format json expected_rc=None timeout=120s
|
||||
Should Be Equal As Integers ${status1.rc} 0
|
||||
... plan status failed (rc=${status1.rc}): ${status1.stderr}
|
||||
${initial_phase}= Safe Parse Json Field With Nested Support ${status1.stdout} phase
|
||||
${initial_state}= Safe Parse Json Field With Nested Support ${status1.stdout} processing_state
|
||||
${initial_phase}= Safe Parse Json Field With Nested Support ${status1.stdout} data.phase
|
||||
${initial_state}= Safe Parse Json Field With Nested Support ${status1.stdout} data.processing_state
|
||||
Log Initial phase=${initial_phase} processing_state=${initial_state}
|
||||
# 4. Execute plan — triggers PHASE_TRANSITION and execution events
|
||||
${execute}= Run CleverAgents Command plan execute ${plan_id} --format json expected_rc=None timeout=180s
|
||||
@@ -353,8 +353,8 @@ M6 E2E Event Queue Via Plan Lifecycle Transitions
|
||||
${status2}= Run CleverAgents Command plan status ${plan_id} --format json expected_rc=None timeout=120s
|
||||
Should Be Equal As Integers ${status2.rc} 0
|
||||
... plan status failed after execute (rc=${status2.rc}): ${status2.stderr}
|
||||
${post_phase}= Safe Parse Json Field With Nested Support ${status2.stdout} phase
|
||||
${post_state}= Safe Parse Json Field With Nested Support ${status2.stdout} processing_state
|
||||
${post_phase}= Safe Parse Json Field With Nested Support ${status2.stdout} data.phase
|
||||
${post_state}= Safe Parse Json Field With Nested Support ${status2.stdout} data.processing_state
|
||||
Log Post-execute phase=${post_phase} processing_state=${post_state}
|
||||
# P0-3: Hard assertion — at least one state field must be populated,
|
||||
# proving the event bus delivered and processed lifecycle events.
|
||||
@@ -383,7 +383,7 @@ M6 E2E Hierarchical Decomposition Via Plan Tree
|
||||
# P0-2: Fail (not Skip) when API keys are present but plan use fails.
|
||||
Should Be Equal As Integers ${plan_use.rc} 0
|
||||
... plan use failed (rc=${plan_use.rc}): ${plan_use.stderr}
|
||||
${plan_id}= Safe Parse Json Field With Nested Support With Nested Support ${plan_use.stdout} data.plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support ${plan_use.stdout} data.plan_id
|
||||
Should Not Be Empty ${plan_id} Could not parse plan_id from plan use output
|
||||
# Execute plan to populate the decision tree with strategy/execution decisions
|
||||
${execute}= Run CleverAgents Command plan execute ${plan_id} --format json expected_rc=None timeout=180s
|
||||
@@ -418,7 +418,7 @@ M6 E2E Full Autonomy Acceptance Flow
|
||||
Should Be Equal As Integers ${plan_use.rc} 0
|
||||
... plan use failed (rc=${plan_use.rc}): ${plan_use.stderr}
|
||||
# Parse plan_id from JSON output
|
||||
${plan_id}= Safe Parse Json Field With Nested Support With Nested Support ${plan_use.stdout} data.plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support ${plan_use.stdout} data.plan_id
|
||||
Should Not Be Empty ${plan_id} Could not parse plan_id from plan use output
|
||||
# Check plan status
|
||||
${status}= Run CleverAgents Command plan status ${plan_id} --format json expected_rc=None timeout=120s
|
||||
@@ -430,7 +430,7 @@ M6 E2E Full Autonomy Acceptance Flow
|
||||
IF ${execute.rc} == 0
|
||||
Output Should Contain ${execute} ${plan_id}
|
||||
# Verify execute output contains phase-transition indicators
|
||||
${exec_phase}= Safe Parse Json Field With Nested Support ${execute.stdout} phase
|
||||
${exec_phase}= Safe Parse Json Field With Nested Support ${execute.stdout} data.phase
|
||||
Log Execute phase: ${exec_phase}
|
||||
# Apply
|
||||
Full Flow Apply Step ${plan_id}
|
||||
|
||||
@@ -432,7 +432,8 @@ WF04 Multi Project Dependency Update Supervised Profile
|
||||
|
||||
# Parse tree for child plan / decision structure
|
||||
${tree_payload}= Parse Json Payload ${r_tree.stdout}
|
||||
${decision_count}= Count Decision Nodes ${tree_payload}
|
||||
${tree_data}= Set Variable ${tree_payload}[data]
|
||||
${decision_count}= Count Decision Nodes ${tree_data}
|
||||
Log Decision tree contains ${decision_count} decision node(s)
|
||||
Should Be True ${decision_count} >= 1
|
||||
... Plan tree should contain at least one decision node after strategize (found ${decision_count})
|
||||
@@ -472,7 +473,8 @@ WF04 Multi Project Dependency Update Supervised Profile
|
||||
Should Not Contain ${r_tree_post.stdout}${r_tree_post.stderr} Traceback
|
||||
Should Not Contain ${r_tree_post.stdout}${r_tree_post.stderr} INTERNAL
|
||||
${tree_post_payload}= Parse Json Payload ${r_tree_post.stdout}
|
||||
${post_exec_decision_count}= Count Decision Nodes ${tree_post_payload}
|
||||
${tree_post_data}= Set Variable ${tree_post_payload}[data]
|
||||
${post_exec_decision_count}= Count Decision Nodes ${tree_post_data}
|
||||
Log Post-execute decision tree contains ${post_exec_decision_count} decision node(s)
|
||||
# Require non-trivial tree depth after execute. Subplan spawning is
|
||||
# asserted deterministically via internal snapshot checks above.
|
||||
|
||||
@@ -324,13 +324,13 @@ WF05 Database Schema Migration With Safety Nets Review Profile
|
||||
... plan use failed (rc=${r_use.rc}): ${r_use.stderr}
|
||||
Should Not Contain ${r_use.stdout}${r_use.stderr} Traceback
|
||||
Should Not Contain ${r_use.stdout}${r_use.stderr} INTERNAL
|
||||
${plan_id}= Safe Parse Json Field With Nested Support With Nested Support ${r_use.stdout} data.plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support ${r_use.stdout} data.plan_id
|
||||
Should Not Be Empty ${plan_id} Could not extract plan_id from plan use output
|
||||
Set Test Variable ${WF05_PLAN_ID} ${plan_id}
|
||||
Log Plan ID: ${plan_id}
|
||||
# Verify review automation profile was applied.
|
||||
# If plan use output omits automation_profile, fall back to plan status.
|
||||
${resolved_profile}= Safe Parse Json Field With Nested Support ${r_use.stdout} automation_profile
|
||||
${resolved_profile}= Safe Parse Json Field With Nested Support ${r_use.stdout} data.automation_profile
|
||||
${resolved_profile}= Set Variable If $resolved_profile is None ${EMPTY} ${resolved_profile}
|
||||
${resolved_profile}= Set Variable If '${resolved_profile}' == 'None' ${EMPTY} ${resolved_profile}
|
||||
IF '${resolved_profile}' == ''
|
||||
@@ -341,7 +341,7 @@ WF05 Database Schema Migration With Safety Nets Review Profile
|
||||
... plan status for profile verification failed (rc=${r_profile_status.rc}): ${r_profile_status.stderr}
|
||||
Should Not Contain ${r_profile_status.stdout}${r_profile_status.stderr} Traceback
|
||||
Should Not Contain ${r_profile_status.stdout}${r_profile_status.stderr} INTERNAL
|
||||
${resolved_profile}= Safe Parse Json Field With Nested Support With Nested Support ${r_profile_status.stdout} automation_profile
|
||||
${resolved_profile}= Safe Parse Json Field With Nested Support ${r_profile_status.stdout} data.automation_profile
|
||||
${resolved_profile}= Set Variable If $resolved_profile is None ${EMPTY} ${resolved_profile}
|
||||
${resolved_profile}= Set Variable If '${resolved_profile}' == 'None' ${EMPTY} ${resolved_profile}
|
||||
END
|
||||
@@ -416,11 +416,11 @@ WF05 Database Schema Migration With Safety Nets Review Profile
|
||||
Should Not Be Empty ${r_status.stdout}
|
||||
Output Should Contain ${r_status} ${plan_id}
|
||||
# Assert phase field is populated after execute
|
||||
${status_phase}= Safe Parse Json Field With Nested Support ${r_status.stdout} phase
|
||||
${status_phase}= Safe Parse Json Field With Nested Support ${r_status.stdout} data.phase
|
||||
Should Not Be Empty ${status_phase} Plan phase should be populated after execute
|
||||
Log Plan phase after execute: ${status_phase}
|
||||
# Extract checkpoint ID if available (for rollback attempt)
|
||||
${checkpoint_id}= Safe Parse Json Field With Nested Support ${r_status.stdout} last_checkpoint_id
|
||||
${checkpoint_id}= Safe Parse Json Field With Nested Support ${r_status.stdout} data.last_checkpoint_id
|
||||
# Guard against Python None being returned as string "None" from JSON null
|
||||
${checkpoint_id}= Set Variable If $checkpoint_id is None ${EMPTY} ${checkpoint_id}
|
||||
${checkpoint_id}= Set Variable If '${checkpoint_id}' == 'None' ${EMPTY} ${checkpoint_id}
|
||||
@@ -510,8 +510,8 @@ WF05 Database Schema Migration With Safety Nets Review Profile
|
||||
... plan status after apply failed (rc=${r_status_after_apply.rc}): ${r_status_after_apply.stderr}
|
||||
Should Not Contain ${r_status_after_apply.stdout}${r_status_after_apply.stderr} Traceback
|
||||
Should Not Contain ${r_status_after_apply.stdout}${r_status_after_apply.stderr} INTERNAL
|
||||
${apply_phase}= Safe Parse Json Field With Nested Support ${r_status_after_apply.stdout} phase
|
||||
${apply_state}= Safe Parse Json Field With Nested Support ${r_status_after_apply.stdout} processing_state
|
||||
${apply_phase}= Safe Parse Json Field With Nested Support ${r_status_after_apply.stdout} data.phase
|
||||
${apply_state}= Safe Parse Json Field With Nested Support ${r_status_after_apply.stdout} data.processing_state
|
||||
Should Not Be Empty ${apply_phase} plan status after apply should include phase
|
||||
Should Not Be Empty ${apply_state} plan status after apply should include processing_state
|
||||
${apply_phase_lower}= Evaluate ($apply_phase).lower()
|
||||
|
||||
@@ -210,7 +210,7 @@ WF07 E2E CI Plan Launch
|
||||
... expected_rc=None timeout=180s
|
||||
# Parse and validate JSON output
|
||||
${stdout}= Set Variable ${plan_result.stdout}
|
||||
${plan_id}= Safe Parse Json Field With Nested Support With Nested Support ${stdout} data.plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support ${stdout} data.plan_id
|
||||
IF '${plan_id}' != '${EMPTY}'
|
||||
Log Plan launched with ID: ${plan_id}
|
||||
# Drive the plan through its lifecycle. Per the specification
|
||||
@@ -328,7 +328,7 @@ Poll Plan Until Terminal
|
||||
FOR ${i} IN RANGE ${max_polls}
|
||||
${result}= Run CleverAgents Command plan status ${plan_id}
|
||||
... --format json expected_rc=None
|
||||
${state}= Safe Parse Json Field With Nested Support ${result.stdout} state
|
||||
${state}= Safe Parse Json Field With Nested Support ${result.stdout} data.state
|
||||
IF '${state}' in ['applied', 'constrained', 'cancelled', 'errored']
|
||||
RETURN ${state}
|
||||
END
|
||||
|
||||
@@ -223,7 +223,7 @@ WF12 Large Scale Hierarchical Feature Implementation
|
||||
Should Not Contain ${r_use.stdout}${r_use.stderr} Traceback
|
||||
Should Not Contain ${r_use.stdout}${r_use.stderr} INTERNAL
|
||||
Output Should Contain ${r_use} plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support With Nested Support ${r_use.stdout} data.plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support ${r_use.stdout} data.plan_id
|
||||
Should Not Be Empty ${plan_id} Could not parse plan_id from plan use output
|
||||
Log Plan ID: ${plan_id}
|
||||
|
||||
@@ -300,8 +300,8 @@ WF12 Large Scale Hierarchical Feature Implementation
|
||||
... expected_rc=None timeout=60s
|
||||
Should Be Equal As Integers ${r_mid_status.rc} 0
|
||||
... Intermediate plan status failed (rc=${r_mid_status.rc}): ${r_mid_status.stderr}
|
||||
${mid_phase}= Safe Parse Json Field With Nested Support ${r_mid_status.stdout} phase
|
||||
${mid_state}= Safe Parse Json Field With Nested Support ${r_mid_status.stdout} processing_state
|
||||
${mid_phase}= Safe Parse Json Field With Nested Support ${r_mid_status.stdout} data.phase
|
||||
${mid_state}= Safe Parse Json Field With Nested Support ${r_mid_status.stdout} data.processing_state
|
||||
Log Post-strategize status: phase=${mid_phase} processing_state=${mid_state}
|
||||
# Assert plan state progressed — at least one field should be non-empty after strategize (M3 fix)
|
||||
${mid_populated}= Evaluate '${mid_phase}' != '' or '${mid_state}' != ''
|
||||
@@ -330,8 +330,8 @@ WF12 Large Scale Hierarchical Feature Implementation
|
||||
... expected_rc=None timeout=60s
|
||||
Should Be Equal As Integers ${r_pre_correct_status.rc} 0
|
||||
... Pre-correction plan status failed (rc=${r_pre_correct_status.rc}): ${r_pre_correct_status.stderr}
|
||||
${pre_correct_phase}= Safe Parse Json Field With Nested Support ${r_pre_correct_status.stdout} phase
|
||||
${pre_correct_state}= Safe Parse Json Field With Nested Support ${r_pre_correct_status.stdout} processing_state
|
||||
${pre_correct_phase}= Safe Parse Json Field With Nested Support ${r_pre_correct_status.stdout} data.phase
|
||||
${pre_correct_state}= Safe Parse Json Field With Nested Support ${r_pre_correct_status.stdout} data.processing_state
|
||||
Log Pre-correction status: phase=${pre_correct_phase} state=${pre_correct_state}
|
||||
# Gate correction on pre-correction status: if plan is already in a terminal
|
||||
# processing state, correction may fail — skip with WARN (m4 fix).
|
||||
@@ -373,8 +373,8 @@ WF12 Large Scale Hierarchical Feature Implementation
|
||||
Should Be True ${has_correction_indicator}
|
||||
... Correction output should acknowledge append mode (found none of: append, queued, mode+append)
|
||||
# Structural check: parse the correction response and verify a status field exists
|
||||
${correction_status}= Safe Parse Json Field With Nested Support ${r_correct.stdout} status
|
||||
${correction_id_field}= Safe Parse Json Field With Nested Support ${r_correct.stdout} correction_id
|
||||
${correction_status}= Safe Parse Json Field With Nested Support ${r_correct.stdout} data.status
|
||||
${correction_id_field}= Safe Parse Json Field With Nested Support ${r_correct.stdout} data.correction_id
|
||||
# At least one structural field should be populated in the correction response
|
||||
${has_structural_field}= Evaluate '${correction_status}' != '' or '${correction_id_field}' != ''
|
||||
Should Be True ${has_structural_field}
|
||||
@@ -422,7 +422,7 @@ WF12 Large Scale Hierarchical Feature Implementation
|
||||
Should Not Contain ${r_apply.stdout}${r_apply.stderr} INTERNAL
|
||||
Output Should Contain ${r_apply} ${plan_id}
|
||||
# Assert apply phase (consistent with m6_acceptance Full Flow Apply Step)
|
||||
${apply_phase}= Safe Parse Json Field With Nested Support ${r_apply.stdout} phase
|
||||
${apply_phase}= Safe Parse Json Field With Nested Support ${r_apply.stdout} data.phase
|
||||
IF '${apply_phase}' != ''
|
||||
Should Contain ${apply_phase.lower()} apply
|
||||
... Plan phase should indicate apply after apply
|
||||
@@ -451,8 +451,8 @@ WF12 Large Scale Hierarchical Feature Implementation
|
||||
Should Not Be Empty ${r_status.stdout}
|
||||
Output Should Contain ${r_status} ${plan_id}
|
||||
# Parse and verify plan is in a terminal state (not intermediate)
|
||||
${phase}= Safe Parse Json Field With Nested Support ${r_status.stdout} phase
|
||||
${state}= Safe Parse Json Field With Nested Support ${r_status.stdout} processing_state
|
||||
${phase}= Safe Parse Json Field With Nested Support ${r_status.stdout} data.phase
|
||||
${state}= Safe Parse Json Field With Nested Support ${r_status.stdout} data.processing_state
|
||||
Log Final phase=${phase} processing_state=${state}
|
||||
# At least one field must be non-empty
|
||||
${state_populated}= Evaluate '${phase}' != '' or '${state}' != ''
|
||||
|
||||
@@ -146,7 +146,7 @@ WF17 Explicit Container With Directory Mount Trusted Profile
|
||||
... project context show ${PROJECT_NAME} --format json
|
||||
... expected_rc=None
|
||||
IF ${r_ctx_show.rc} == 0
|
||||
${persisted_env}= Safe Parse Json Field With Nested Support ${r_ctx_show.stdout} execution_environment
|
||||
${persisted_env}= Safe Parse Json Field With Nested Support ${r_ctx_show.stdout} data.execution_environment
|
||||
IF "${persisted_env}" != ""
|
||||
Should Be Equal As Strings ${persisted_env.lower()} container
|
||||
... Execution environment should be persisted as 'container' but got '${persisted_env}'
|
||||
@@ -190,7 +190,7 @@ WF17 Explicit Container With Directory Mount Trusted Profile
|
||||
... --format json
|
||||
Should Not Contain ${r_use.stdout}${r_use.stderr} Traceback
|
||||
Should Not Contain ${r_use.stdout}${r_use.stderr} INTERNAL
|
||||
${plan_id}= Safe Parse Json Field With Nested Support With Nested Support ${r_use.stdout} data.plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support ${r_use.stdout} data.plan_id
|
||||
Should Not Be Empty ${plan_id} msg=Expected plan_id in plan use JSON output
|
||||
Should Match Regexp ${plan_id} ^[0-9A-HJKMNP-TV-Z]{26}$
|
||||
... Plan ID should be a valid Crockford Base32 ULID: ${plan_id}
|
||||
@@ -281,8 +281,8 @@ WF17 Explicit Container With Directory Mount Trusted Profile
|
||||
# After full lifecycle (strategize → execute → diff → apply → status),
|
||||
# the plan should have reached an apply-related phase, matching M6's
|
||||
# Full Flow Apply Step pattern.
|
||||
${final_phase}= Safe Parse Json Field With Nested Support ${r_status.stdout} phase
|
||||
${final_state}= Safe Parse Json Field With Nested Support ${r_status.stdout} processing_state
|
||||
${final_phase}= Safe Parse Json Field With Nested Support ${r_status.stdout} data.phase
|
||||
${final_state}= Safe Parse Json Field With Nested Support ${r_status.stdout} data.processing_state
|
||||
Should Not Be Empty ${final_phase} Plan phase should be populated after full lifecycle
|
||||
Should Contain ${final_phase.lower()} apply
|
||||
... Plan should reach apply phase after apply (got: ${final_phase})
|
||||
@@ -297,7 +297,7 @@ WF17 Explicit Container With Directory Mount Trusted Profile
|
||||
# NOTE: Container routing verification gap is not yet tracked in a dedicated
|
||||
# issue. A tracking issue should be created to cover CLI-level routing
|
||||
# indicators for container execution.
|
||||
${exec_env}= Safe Parse Json Field With Nested Support ${r_status.stdout} execution_environment
|
||||
${exec_env}= Safe Parse Json Field With Nested Support ${r_status.stdout} data.execution_environment
|
||||
IF "${exec_env}" != ""
|
||||
Should Be Equal As Strings ${exec_env.lower()} container
|
||||
... Execution environment should be 'container' but got '${exec_env}'
|
||||
@@ -434,7 +434,7 @@ WF17 TDD Precedence Level 2 Project Override Resolution
|
||||
IF ${r_use.rc} != 0
|
||||
Fail plan use failed (rc=${r_use.rc}) — cannot verify precedence level 2: ${r_use.stderr}
|
||||
END
|
||||
${plan_id}= Safe Parse Json Field With Nested Support With Nested Support ${r_use.stdout} data.plan_id
|
||||
${plan_id}= Safe Parse Json Field With Nested Support ${r_use.stdout} data.plan_id
|
||||
Should Not Be Empty ${plan_id} msg=Expected plan_id in plan use output
|
||||
|
||||
# Check plan status for execution environment resolution.
|
||||
@@ -444,6 +444,6 @@ WF17 TDD Precedence Level 2 Project Override Resolution
|
||||
Should Be Equal As Integers ${r_status.rc} 0
|
||||
# The plan should show execution_environment=container resolved via
|
||||
# project-level override (precedence level 2), not plan-level.
|
||||
${exec_env}= Safe Parse Json Field With Nested Support ${r_status.stdout} execution_environment
|
||||
${exec_env}= Safe Parse Json Field With Nested Support ${r_status.stdout} data.execution_environment
|
||||
Should Be Equal As Strings ${exec_env.lower()} container
|
||||
... Execution environment should resolve to container via project-level override (precedence level 2, bug #1080)
|
||||
|
||||
Reference in New Issue
Block a user