@@ -16,7 +16,7 @@ def test_resolver_create_and_resolve_roundtrip(
1616 key_resolver : KeyResolver , org_service : OrgService
1717) -> None :
1818 org = org_service .create (
19- oin = "ura :00000099000000001000" ,
19+ oin = "oin :00000099000000001000" ,
2020 name = "test org" ,
2121 max_key_usage = RidUsage .ReversiblePseudonym ,
2222 )
@@ -27,7 +27,7 @@ def test_resolver_create_and_resolve_roundtrip(
2727 scope = ["NVI" , " lmr " ],
2828 pub_key = TEST_PUBKEY ,
2929 )
30- entry = key_resolver .create (org .id , req .scope , req .pub_key )
30+ entry = key_resolver .create (org .id , req .scope , "my-key-id" , req .pub_key )
3131
3232 assert entry .organization_id == org .id
3333 assert sorted (entry .scope ) == ["lmr" , "nvi" ]
@@ -46,7 +46,7 @@ def test_resolver_get_and_delete(
4646 max_key_usage = RidUsage .ReversiblePseudonym ,
4747 )
4848
49- e = key_resolver .create (org .id , ["*" ], TEST_PUBKEY )
49+ e = key_resolver .create (org .id , ["*" ], "my-key-id" , TEST_PUBKEY )
5050
5151 items = key_resolver .get_by_org (org .id ) or []
5252 assert len (items ) == 1
@@ -60,3 +60,37 @@ def test_resolver_get_and_delete(
6060
6161 items2 = key_resolver .get_by_org (org .id )
6262 assert items2 == []
63+
64+
65+ def test_resolver_create_persists_key_id (
66+ key_resolver : KeyResolver , org_service : OrgService
67+ ) -> None :
68+ org = org_service .create (
69+ oin = "oin:00000099000000001000" , name = "test org" , max_key_usage = RidUsage .ReversiblePseudonym
70+ )
71+
72+ entry = key_resolver .create (org .id , ["nvi" ], "kid-2024" , TEST_PUBKEY )
73+ assert entry .key_id == "kid-2024"
74+
75+ # key_id survives a round-trip through the database
76+ stored = key_resolver .get_by_id (entry .id )
77+ assert stored is not None
78+ assert stored .key_id == "kid-2024"
79+ assert stored .to_dict ()["key_id" ] == "kid-2024"
80+
81+
82+ def test_resolver_create_without_key_id (
83+ key_resolver : KeyResolver , org_service : OrgService
84+ ) -> None :
85+ org = org_service .create (
86+ oin = "oin:00000099000000001000" , name = "test org" , max_key_usage = RidUsage .ReversiblePseudonym
87+ )
88+
89+ entry = key_resolver .create (org .id , ["nvi" ], None , TEST_PUBKEY )
90+ assert entry .key_id is None
91+
92+ stored = key_resolver .get_by_id (entry .id )
93+ assert stored is not None
94+ assert stored .key_id is None
95+ # to_dict() represents a missing key_id as an empty string
96+ assert stored .to_dict ()["key_id" ] == ""
0 commit comments