Add public registration cancellation
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

This commit is contained in:
tegwick 2026-08-10 19:27:41 +02:00
parent 8170373148
commit d5a5fed69a
7 changed files with 174 additions and 8 deletions

View file

@ -68,6 +68,23 @@ class RegistrationVerificationAdapterTests(unittest.TestCase):
with self.assertRaisesRegex(RuntimeError, "wrong purpose"):
adapter.consume("x" * 32)
@patch("user_engine.adapters.registration_verification.urlopen")
def test_cancel_requires_cancellation_purpose(self, opener):
opener.return_value = Response(json.dumps({
"purpose": "public-registration-cancel",
"verification_id": "fvc_1", "registration_id": "reg_1",
"email": "person@example.test", "preferred_username": "person",
"client_id": "coulomb-social", "tenant": "tenant:coulomb",
"source_system": "mail-verifier",
"assurance": {"mailbox_control": True},
}).encode())
adapter = HTTPRegistrationVerificationAdapter(
base_url="http://verification", bearer_token="secret"
)
evidence = adapter.cancel("x" * 32)
self.assertEqual("reg_1", evidence.registration_id)
self.assertTrue(opener.call_args.args[0].full_url.endswith("/cancel"))
@patch("user_engine.adapters.registration_verification.urlopen")
def test_expired_and_replayed_handles_have_the_same_redacted_failure(self, opener):
adapter = HTTPRegistrationVerificationAdapter(