tests: Add test for Delegations.get_delegated_role()

This test currently fails for SuccinctRoles.

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
This commit is contained in:
Jussi Kukkonen 2024-02-11 13:03:11 +02:00
parent 14a93d1875
commit 2aec25e729

View file

@ -1119,6 +1119,33 @@ def test_get_roles_in_succinct_roles(self) -> None:
expected_bin_suffix = f"{bin_numer:0{expected_suffix_length}x}"
self.assertEqual(role_name, f"bin-{expected_bin_suffix}")
def test_delegations_get_delegated_role(self) -> None:
delegations = Delegations({}, {})
targets = Targets(delegations=delegations)
with self.assertRaises(ValueError):
targets.get_delegated_role("abc")
# test "normal" delegated role (path or path_hash_prefix)
role = DelegatedRole("delegated", [], 1, False, [])
delegations.roles = {"delegated": role}
with self.assertRaises(ValueError):
targets.get_delegated_role("not-delegated")
self.assertEqual(targets.get_delegated_role("delegated"), role)
delegations.roles = None
# test succinct delegation
bit_len = 3
role2 = SuccinctRoles([], 1, bit_len, "prefix")
delegations.succinct_roles = role2
for name in ["prefix-", "prefix--1", f"prefix-{2**bit_len:0x}"]:
with self.assertRaises(ValueError, msg=f"role name '{name}'"):
targets.get_delegated_role(name)
for i in range(0, 2**bit_len):
self.assertEqual(
targets.get_delegated_role(f"prefix-{i:0x}"), role2
)
# Run unit test.
if __name__ == "__main__":