21e9a65c33
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 27s
CI / typecheck (pull_request) Successful in 31s
CI / quality (pull_request) Successful in 31s
CI / security (pull_request) Successful in 43s
CI / unit_tests (pull_request) Successful in 2m56s
CI / integration_tests (pull_request) Successful in 3m45s
CI / docker (pull_request) Successful in 56s
CI / e2e_tests (pull_request) Successful in 4m14s
CI / coverage (pull_request) Successful in 7m37s
CI / lint (push) Successful in 15s
CI / build (push) Successful in 38s
CI / quality (push) Successful in 41s
CI / typecheck (push) Successful in 55s
CI / security (push) Successful in 56s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 1m41s
CI / docker (push) Successful in 55s
CI / integration_tests (push) Successful in 3m39s
CI / e2e_tests (push) Successful in 5m9s
CI / coverage (push) Successful in 6m46s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (pull_request) Successful in 37m40s
Replace the metadata-only subplan spawn with real child Plan domain object creation. SubplanService.spawn() now creates full Plan instances with proper PlanIdentity (linking parent_plan_id and root_plan_id), sets them to PlanPhase.STRATEGIZE / ProcessingState.QUEUED, and returns them in the SpawnResult.child_plans list for downstream lifecycle orchestration. Key changes: - SubplanService.spawn() now creates Plan domain objects for each spawn entry with complete PlanIdentity linking, inheriting the parent plan's namespace, actors, project links, definition_of_done, and access settings. - SpawnResult dataclass extended with child_plans: list[Plan] field to carry the created child plans alongside the existing metadata and statuses. - Parent plan's subplan_statuses list is updated with SubplanStatus entries tracking each child's lifecycle state. - Fixed Pyright type errors: added missing definition_of_done, reusable, read_only, and server parameters to Plan and NamespacedName constructors. - Removed @tdd_expected_fail tags from TDD test files since the bug is fixed. - Added Behave scenarios and Robot integration tests verifying child plan creation, lifecycle phase/state, and parent tracking. ISSUES CLOSED: #823
51 lines
2.5 KiB
Plaintext
51 lines
2.5 KiB
Plaintext
*** Settings ***
|
|
Documentation Integration test — parallel subplan spawn orchestration.
|
|
... Verifies that SubplanService.spawn() creates real child Plan
|
|
... domain objects, inherits project links, sets correct execution
|
|
... mode, and attaches SubplanStatus entries to the parent plan
|
|
... when configured for parallel execution.
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER} ${CURDIR}/helper_subplan_spawn_orchestration.py
|
|
|
|
*** Test Cases ***
|
|
Parallel Spawn Creates Child Plans With Correct Identity
|
|
[Documentation] Verify parallel spawn creates child Plans with parent/root IDs.
|
|
[Tags] subplan orchestration
|
|
${result}= Run Process ${PYTHON} ${HELPER} parallel-spawn-identity cwd=${WORKSPACE} timeout=30s
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} parallel-spawn-identity-ok
|
|
|
|
Parallel Spawn Child Plans Inherit Project Links
|
|
[Documentation] Verify child plans inherit project links from the parent.
|
|
[Tags] subplan orchestration
|
|
${result}= Run Process ${PYTHON} ${HELPER} parallel-spawn-project-links cwd=${WORKSPACE} timeout=30s
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} parallel-spawn-project-links-ok
|
|
|
|
Parallel Spawn Attaches Statuses To Parent
|
|
[Documentation] Verify that spawn() attaches SubplanStatus entries to the
|
|
... parent plan for lifecycle tracking.
|
|
[Tags] subplan orchestration
|
|
${result}= Run Process ${PYTHON} ${HELPER} parallel-spawn-parent-statuses cwd=${WORKSPACE} timeout=30s
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} parallel-spawn-parent-statuses-ok
|
|
|
|
Parallel Spawn Execution Mode Is Parallel
|
|
[Documentation] Verify the spawn result reports PARALLEL execution mode.
|
|
[Tags] subplan orchestration
|
|
${result}= Run Process ${PYTHON} ${HELPER} parallel-spawn-mode cwd=${WORKSPACE} timeout=30s
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} parallel-spawn-mode-ok
|