Skip to content

Commit 2aec25e

Browse files
committed
tests: Add test for Delegations.get_delegated_role()
This test currently fails for SuccinctRoles. Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
1 parent 14a93d1 commit 2aec25e

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

tests/test_api.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,6 +1119,33 @@ def test_get_roles_in_succinct_roles(self) -> None:
11191119
expected_bin_suffix = f"{bin_numer:0{expected_suffix_length}x}"
11201120
self.assertEqual(role_name, f"bin-{expected_bin_suffix}")
11211121

1122+
def test_delegations_get_delegated_role(self) -> None:
1123+
delegations = Delegations({}, {})
1124+
targets = Targets(delegations=delegations)
1125+
1126+
with self.assertRaises(ValueError):
1127+
targets.get_delegated_role("abc")
1128+
1129+
# test "normal" delegated role (path or path_hash_prefix)
1130+
role = DelegatedRole("delegated", [], 1, False, [])
1131+
delegations.roles = {"delegated": role}
1132+
with self.assertRaises(ValueError):
1133+
targets.get_delegated_role("not-delegated")
1134+
self.assertEqual(targets.get_delegated_role("delegated"), role)
1135+
delegations.roles = None
1136+
1137+
# test succinct delegation
1138+
bit_len = 3
1139+
role2 = SuccinctRoles([], 1, bit_len, "prefix")
1140+
delegations.succinct_roles = role2
1141+
for name in ["prefix-", "prefix--1", f"prefix-{2**bit_len:0x}"]:
1142+
with self.assertRaises(ValueError, msg=f"role name '{name}'"):
1143+
targets.get_delegated_role(name)
1144+
for i in range(0, 2**bit_len):
1145+
self.assertEqual(
1146+
targets.get_delegated_role(f"prefix-{i:0x}"), role2
1147+
)
1148+
11221149

11231150
# Run unit test.
11241151
if __name__ == "__main__":

0 commit comments

Comments
 (0)