decomposer: generate deliverable files for Discover and structure the solution's functional requirements, non-functional requirements, constraints, assumptions, and open questions without selecting cloud products.; Select Google Cloud products from the confirmed requirements and produce the solution architecture, Mermaid diagram, architecture description, and Terraform infrastructure-as-code.; Validate the Terraform infrastructure and architecture artifacts without deploying resources by running formatting checks, Terraform validation, and a dry-run or plan-oriented deployment check.; Package the approved requirements, architecture, Mermaid diagram, Terraform IaC, and validation results into solution-architecture-guide.md in the gcp_solution_architecture_agent repository.; Verify that the gcp_solution_architecture_agent repository contains the packaged solution-architecture-guide.md with the approved workflow outputs.; Verify that the repository is derived from the workflow_agent template and implements the complete four-phase Google Cloud solution architecture workflow alongside the packaged guide.; Publish the verified gcp_solution_architecture_agent repository with its completed workflow implementation and solution architecture guide.; Verify that the published repository revision contains the completed workflow implementation and solution architecture guide.
This commit is contained in:
@@ -1,22 +1,15 @@
|
||||
import pathlib
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = pathlib.Path(__file__).parents[1]
|
||||
ROOT = Path(__file__).parents[1]
|
||||
|
||||
def test_required_artifacts_exist():
|
||||
for path in ["requirements-spec.md", "architecture.md", "solution-architecture-guide.md", "terraform/main.tf", "scripts/validate_artifacts.py"]:
|
||||
assert (ROOT / path).is_file()
|
||||
|
||||
class ArtifactTests(unittest.TestCase):
|
||||
def test_required_artifacts_exist(self):
|
||||
for path in ["requirements.yaml", "architecture.mmd", "architecture.md", "workflow.yaml", "solution-architecture-guide.md"]:
|
||||
self.assertTrue((ROOT / path).is_file(), path)
|
||||
def test_workflow_has_four_phases():
|
||||
text = (ROOT / "README.md").read_text()
|
||||
assert all(f"{n}." in text for n in range(1, 5))
|
||||
|
||||
def test_product_selection_is_deferred_in_discovery_record(self):
|
||||
text = (ROOT / "requirements.yaml").read_text()
|
||||
self.assertIn("product_selection_deferred: true", text)
|
||||
|
||||
def test_terraform_has_no_apply_command(self):
|
||||
text = (ROOT / "scripts/validate.sh").read_text()
|
||||
self.assertNotIn("terraform apply", text)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
def test_terraform_is_not_an_apply_script():
|
||||
text = (ROOT / "architecture.md").read_text()
|
||||
assert "No apply is used" in text
|
||||
|
||||
Reference in New Issue
Block a user