Files
cleveragents-core/robot/wf04_multi_project_dependency.robot
T
hamza.khyari 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
test(integration): workflow example 4 — multi-project dependency update (supervised profile)
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
2026-03-27 14:50:11 +00:00

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