[BUG-203] Step_Exit Action Incorrectly Terminates Step Loop in For_Loop action #653
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Type
Bug Fix
PR Checklist
Overview
Bug Description
The
disable stepaction was not being respected inside step loop execution. When a step inside a loop disabled other steps (e.g., STEP-2 disables STEP-3 and STEP-4), those disabled steps would still execute within the loop, even though they were correctly skipped after the loop completed.Root Cause:
disabled_step) was used for two purposes: user intent (disable_step action) and loop bookkeeping (prevent re-running loop-consumed steps)disabled_stepbefore executing stepsdisabled_steplistPrevious Behavior (Broken)
New Behavior (Fixed)
Changes Made
1.
Framework/Utilities/CommonUtil.pyAdded: New list for loop bookkeeping
Purpose: Separate user intent from system bookkeeping
2.
Framework/Built_In_Automation/Sequential_Actions/sequential_actions.pyChanged:
Purpose: Use dedicated list for loop bookkeeping instead of mixing with user intent
3.
Framework/Built_In_Automation/Sequential_Actions/sequential_actions.pyAdded: Check for disabled steps before executing in loop
Purpose: Respect user-disabled steps during loop execution
4.
Framework/MainDriverApi.pyChanged:
Purpose: Check both lists when skipping steps in outer scheduler
5.
Framework/MainDriverApi.pyAdded: Reset loop bookkeeping list per test case
Purpose: Clean state for each test case execution
Test Cases
Files Changed
Framework/Utilities/CommonUtil.pyFramework/Built_In_Automation/Sequential_Actions/sequential_actions.pyFramework/MainDriverApi.py