Implement authenticated custody observations and durable root-grant baseline
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Container Image / build-and-push (push) Successful in 27s
Account journey acceptance / journeys (push) Failing after 6s

Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a1029d-2c93-7500-a0e0-e3e089668b29
This commit is contained in:
tegwick 2026-10-03 19:50:15 +02:00
parent 1999a144c9
commit 0d0751d39d
18 changed files with 1129 additions and 14 deletions

View file

@ -0,0 +1,33 @@
import hashlib
import json
import unittest
import test_custody_adapter as adapter_fixtures
CANON = adapter_fixtures.CANON
from user_engine.custody_bootstrap import initialize_baseline
@unittest.skipUnless(CANON.exists(), "optional sibling fixtures absent")
class CustodyBootstrapTests(unittest.TestCase):
def setUp(self):
self.fixture = adapter_fixtures.CustodyAdapterTests()
self.fixture.setUp()
self.fixture.adapter.clock = lambda: self.fixture.now
self.digest = hashlib.sha256(json.dumps(self.fixture.document, sort_keys=True, separators=(",", ":"), ensure_ascii=True).encode()).hexdigest()
def test_authenticated_receipt_match_initializes_once(self):
self.assertTrue(initialize_baseline(self.fixture.adapter, expected_sha256=self.digest))
self.assertFalse(initialize_baseline(self.fixture.adapter, expected_sha256=self.digest))
self.assertEqual(self.fixture.reads, 1)
def test_wrong_receipt_and_failure_do_not_seed_baseline(self):
self.assertFalse(initialize_baseline(self.fixture.adapter, expected_sha256="0" * 64))
self.fixture.failure = True
self.assertFalse(initialize_baseline(self.fixture.adapter, expected_sha256=self.digest))
self.assertIsNone(self.fixture.baselines.value)
def test_empty_approved_document_initializes_no_grant(self):
self.fixture.document["entries"] = []
digest = hashlib.sha256(json.dumps(self.fixture.document, sort_keys=True, separators=(",", ":"), ensure_ascii=True).encode()).hexdigest()
self.assertTrue(initialize_baseline(self.fixture.adapter, expected_sha256=digest))
self.assertIsNone(self.fixture.observe())