From 2aec25e729bfd0b42e6725c7f86af97f78b5dff4 Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Sun, 11 Feb 2024 13:03:11 +0200 Subject: [PATCH] tests: Add test for Delegations.get_delegated_role() This test currently fails for SuccinctRoles. Signed-off-by: Jussi Kukkonen --- tests/test_api.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/test_api.py b/tests/test_api.py index bf0b9606..74d41e04 100755 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -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__":