8548644819
CI / push-validation (pull_request) Successful in 1m1s
CI / helm (pull_request) Successful in 1m12s
CI / lint (pull_request) Successful in 2m22s
CI / build (pull_request) Successful in 2m17s
CI / typecheck (pull_request) Successful in 3m2s
CI / security (pull_request) Successful in 3m1s
CI / quality (pull_request) Successful in 57s
CI / integration_tests (pull_request) Successful in 5m0s
CI / unit_tests (pull_request) Successful in 6m8s
CI / docker (pull_request) Successful in 1m30s
CI / coverage (pull_request) Successful in 11m51s
CI / status-check (pull_request) Successful in 6s
CI / push-validation (push) Successful in 31s
CI / helm (push) Successful in 37s
CI / build (push) Successful in 1m7s
CI / lint (push) Successful in 1m28s
CI / quality (push) Successful in 1m30s
CI / typecheck (push) Successful in 1m44s
CI / security (push) Successful in 1m49s
CI / benchmark-regression (push) Failing after 40s
CI / e2e_tests (push) Successful in 54s
CI / integration_tests (push) Successful in 3m33s
CI / unit_tests (push) Successful in 5m21s
CI / docker (push) Successful in 1m29s
CI / coverage (push) Successful in 11m6s
CI / status-check (push) Successful in 3s
CI / benchmark-publish (push) Successful in 1h39m32s
Wire subplan_service from the DI container into _get_plan_executor() so PlanExecutor can spawn child plans during the Execute phase. When SubplanService is available but SubplanExecutionService is not explicitly injected, _execute_subplans() now lazily creates a SubplanExecutionService on-the-fly using the parent plan's subplan_config and the new _execute_child_plan callback. - _get_plan_executor(): retrieve subplan_service from container, pass to PlanExecutor constructor - _execute_subplans(): lazily build SubplanExecutionService when only SubplanService is wired (Forgejo #10268) - _execute_child_plan(): new PlanExecutor method that runs a child plan's strategize + execute phases, registered as executor_fn callback ISSUES CLOSED: #10268
29 lines
1.6 KiB
Gherkin
29 lines
1.6 KiB
Gherkin
@mock_only @subplan @plan_executor @tdd_issue @tdd_issue_10268
|
|
Feature: PlanExecutor hierarchical execution wiring
|
|
As a system executing hierarchical plans via the production CLI
|
|
I want SubplanExecutionService to be available when SubplanService is wired
|
|
So that child plan execution works without a pre-configured execution service
|
|
|
|
# ------------------------------------------------------------------
|
|
# SubplanExecutionService lazy creation (Forgejo #10268)
|
|
# ------------------------------------------------------------------
|
|
|
|
Scenario: PlanExecutor lazily creates SubplanExecutionService when SubplanService is present
|
|
Given a PlanExecutor with SubplanService but no SubplanExecutionService
|
|
And a parent plan in Execute phase with a subplan_spawn decision
|
|
When I call run_execute on the parent plan
|
|
Then SubplanService.get_spawn_decisions should have been called
|
|
And SubplanService.spawn should have been called with the spawn entries
|
|
And SubplanExecutionService.execute_all should have been called via lazy creation
|
|
|
|
# ------------------------------------------------------------------
|
|
# _execute_child_plan callback (Forgejo #10268)
|
|
# ------------------------------------------------------------------
|
|
|
|
Scenario: _execute_child_plan callback invokes strategize for a child plan
|
|
Given a PlanExecutor with SubplanService but no SubplanExecutionService
|
|
And a parent plan in Execute phase with a subplan_spawn decision
|
|
And a child plan ready for execution in the lifecycle service
|
|
When I call run_execute on the parent plan
|
|
Then SubplanExecutionService.execute_all should have been called via lazy creation
|