feat: WP-0002 T03 selection decision, wait on purchase

Recommend Scaleway Multi-AZ nl-ams. Inventory stays proposed with
description, decision, reef: refs, secret: handle, and consumers.
Human approval required before ordered.
This commit is contained in:
tegwick 2026-08-14 16:18:16 +02:00
parent 9d11d2a043
commit f9af7518f5
6 changed files with 179 additions and 5 deletions

View file

@ -34,6 +34,18 @@ class PortfolioTest(unittest.TestCase):
with self.assertRaisesRegex(ValueError, "shared resources"):
validate_record(record)
def test_ordered_resource_requires_approved_decision(self):
record = deepcopy(next(
r for _, r in self.records() if r["id"] == "resource:platform:audit-storage"
))
record["status"] = "ordered"
with self.assertRaisesRegex(ValueError, "approved decision"):
validate_record(record)
record["decision"]["status"] = "approved"
record["decision"]["approved_by"] = "human"
record["decision"]["approved_on"] = "2026-08-14"
validate_record(record)
def test_unknown_commission_date_is_preserved(self):
record = deepcopy(next(r for _, r in self.records() if r["status"] == "active"))
record["lifecycle"]["commissioned_on"] = None