feat: inventory schema 0.3 and close WP-0006 T01 T02 T04
v0.2 records stay valid. v0.3 requires the five facets. Validators reject inline Scaleway endpoints and secret-looking strings. The backup record is the first 0.3 object. Reef views already met T02.
This commit is contained in:
parent
a9830f3109
commit
34a014a896
8 changed files with 140 additions and 12 deletions
|
|
@ -47,6 +47,37 @@ class PortfolioTest(unittest.TestCase):
|
|||
record["decision"]["approved_on"] = "2026-08-14"
|
||||
validate_record(record)
|
||||
|
||||
def test_v03_requires_five_facets(self):
|
||||
record = deepcopy(next(
|
||||
r for _, r in self.records() if r["id"] == "resource:platform:audit-storage"
|
||||
))
|
||||
self.assertEqual(record["schema_version"], "0.3")
|
||||
del record["consumers"]
|
||||
with self.assertRaisesRegex(ValueError, "five facets"):
|
||||
validate_record(record)
|
||||
|
||||
def test_inline_endpoint_is_rejected(self):
|
||||
record = deepcopy(next(
|
||||
r for _, r in self.records() if r["id"] == "resource:platform:audit-storage"
|
||||
))
|
||||
record["description"] += " https://s3.nl-ams.scw.cloud"
|
||||
with self.assertRaisesRegex(ValueError, "inline provider endpoint"):
|
||||
validate_record(record)
|
||||
|
||||
def test_inline_secret_is_rejected(self):
|
||||
record = deepcopy(next(
|
||||
r for _, r in self.records() if r["id"] == "resource:platform:audit-storage"
|
||||
))
|
||||
record["description"] += " AGE-SECRET-KEY-1TEST"
|
||||
with self.assertRaisesRegex(ValueError, "inline secret"):
|
||||
validate_record(record)
|
||||
|
||||
def test_v02_records_remain_valid(self):
|
||||
v02 = [r for _, r in self.records() if r.get("schema_version") == "0.2"]
|
||||
self.assertGreaterEqual(len(v02), 1)
|
||||
for record in v02:
|
||||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue