0569aaa51c
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 3m18s
CI / typecheck (pull_request) Successful in 3m55s
CI / quality (pull_request) Successful in 4m2s
CI / security (pull_request) Successful in 4m16s
CI / integration_tests (pull_request) Successful in 9m11s
CI / unit_tests (pull_request) Successful in 9m30s
CI / docker (pull_request) Successful in 1m23s
CI / e2e_tests (pull_request) Successful in 13m30s
CI / coverage (pull_request) Successful in 11m29s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 53m38s
Robot Framework integration test suite for Specification Workflow Example 4: Multi-Project Dependency Update. Exercises the supervised automation profile with 4 projects (common-lib + 3 microservices), child plan spawning, dependency-ordered execution, and coordinated apply. - 8 test cases covering: project registration, action creation, plan use with supervised profile, strategize with DEPENDENCY_ORDERED config, child plan spawning (4 children), dependency-ordered execution (common-lib first), coordinated apply, and full end-to-end lifecycle - Multi-project scope initialization, changeset recording, and cross-project validation via MultiProjectService - Shared validation (local/pytest-mypy) registered and attached to all 4 projects per spec §Workflow Example 4 - Uses mocked LLM providers (CLEVERAGENTS_TESTING_USE_MOCK_AI=true) - All Run Process calls have timeout=60s on_timeout=kill (120s for full lifecycle) - _NoClose wrapper calls rollback() to match established _SafeSession pattern; child IDs generated via ULID() instead of hardcoded ISSUES CLOSED: #768
87 lines
4.1 KiB
Plaintext
87 lines
4.1 KiB
Plaintext
*** Settings ***
|
|
Documentation Integration tests for Workflow Example 4: Multi-Project
|
|
... Dependency Update. Exercises the supervised automation
|
|
... profile with 4 projects, child plan spawning,
|
|
... dependency-ordered execution, and coordinated apply.
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER} ${CURDIR}/helper_wf04_multi_project_dependency.py
|
|
|
|
*** Test Cases ***
|
|
Register 4 Project Links
|
|
[Documentation] Verify 4 project links (common-lib + 3 services) per spec
|
|
[Tags] wf04 projects smoke
|
|
${result}= Run Process ${PYTHON} ${HELPER} register-projects
|
|
... timeout=60s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
... Register projects failed: ${result.stderr}
|
|
Should Contain ${result.stdout} register-projects-ok
|
|
|
|
Create Coordinated Update Action
|
|
[Documentation] Create the coordinated-dep-update action with actors per spec
|
|
[Tags] wf04 action smoke
|
|
${result}= Run Process ${PYTHON} ${HELPER} create-action
|
|
... timeout=60s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
... Create action failed: ${result.stderr}
|
|
Should Contain ${result.stdout} create-action-ok
|
|
|
|
Use Action Across 4 Projects With Supervised Profile
|
|
[Documentation] Use action targeting 4 projects with supervised automation
|
|
[Tags] wf04 plan supervised
|
|
${result}= Run Process ${PYTHON} ${HELPER} plan-use
|
|
... timeout=60s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
... Plan use failed: ${result.stderr}
|
|
Should Contain ${result.stdout} plan-use-ok
|
|
|
|
Strategize With Dependency Ordered Config
|
|
[Documentation] Drive strategize phase and verify subplan config
|
|
[Tags] wf04 strategize subplan
|
|
${result}= Run Process ${PYTHON} ${HELPER} strategize-cycle
|
|
... timeout=60s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
... Strategize cycle failed: ${result.stderr}
|
|
Should Contain ${result.stdout} strategize-cycle-ok
|
|
|
|
Spawn 4 Child Plans
|
|
[Documentation] Spawn child plan statuses for each project
|
|
[Tags] wf04 subplan spawn
|
|
${result}= Run Process ${PYTHON} ${HELPER} spawn-children
|
|
... timeout=60s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
... Spawn children failed: ${result.stderr}
|
|
Should Contain ${result.stdout} spawn-children-ok
|
|
|
|
Execute Children In Dependency Order
|
|
[Documentation] Common-lib executes first (blocking), then services in parallel
|
|
[Tags] wf04 execute dependency-order
|
|
${result}= Run Process ${PYTHON} ${HELPER} execute-children
|
|
... timeout=60s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
... Execute children failed: ${result.stderr}
|
|
Should Contain ${result.stdout} execute-children-ok
|
|
|
|
Apply In Dependency Order
|
|
[Documentation] Apply common-lib first, then services — verifies coordinated apply
|
|
[Tags] wf04 apply dependency-order critical
|
|
${result}= Run Process ${PYTHON} ${HELPER} apply-ordered
|
|
... timeout=60s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
... Apply ordered failed: ${result.stderr}
|
|
Should Contain ${result.stdout} apply-ordered-ok
|
|
|
|
Full Multi-Project Lifecycle End To End
|
|
[Documentation] Complete WF04 lifecycle: action -> use -> strategize ->
|
|
... execute -> apply with multi-project scopes, changesets,
|
|
... cross-project validation, and coordinated apply
|
|
[Tags] wf04 lifecycle critical end-to-end
|
|
${result}= Run Process ${PYTHON} ${HELPER} full-lifecycle
|
|
... timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
... Full lifecycle failed: ${result.stderr}
|
|
Should Contain ${result.stdout} full-lifecycle-ok
|