user-engine/tests/test_verified_claims.py
tegwick 0980d1fd41
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Implement user-engine portal foundation
2026-07-27 22:47:39 +02:00

31 lines
1.1 KiB
Python

import unittest
from user_engine.adapters import VerifiedIdentityClaimsAdapter
from user_engine.errors import ValidationError
class VerifiedIdentityClaimsAdapterTests(unittest.TestCase):
def setUp(self):
self.adapter = VerifiedIdentityClaimsAdapter(
expected_issuer="https://kc.example",
expected_audience="user-engine",
)
self.claims = {
"iss": "https://kc.example/",
"sub": "person-1",
"aud": ["user-engine"],
"tenant": "tenant:friendly:binky",
"principal_type": "human",
"roles": ["tenant-admin"],
}
def test_normalizes_verified_claims(self):
actor = self.adapter.normalize(self.claims)
self.assertEqual("person-1", actor.subject)
self.assertEqual(("tenant-admin",), actor.roles)
def test_rejects_wrong_issuer_and_audience(self):
with self.assertRaises(ValidationError):
self.adapter.normalize({**self.claims, "iss": "https://evil.example"})
with self.assertRaises(ValidationError):
self.adapter.normalize({**self.claims, "aud": ["other"]})