mirror of
https://github.com/theupdateframework/python-tuf
synced 2026-05-24 10:08:28 +00:00
MetadataBundle: Change ValueErrors to RuntimeErrors
As the metadata type is no longer an argument, these are not ValueErrors. Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
This commit is contained in:
parent
f8b714d167
commit
2d155faae6
2 changed files with 29 additions and 9 deletions
|
|
@ -14,15 +14,35 @@ class TestMetadataBundle(unittest.TestCase):
|
|||
def test_local_load(self):
|
||||
repo_dir = os.path.join(os.getcwd(), 'repository_data', 'repository', 'metadata')
|
||||
|
||||
# test loading all local metadata succesfully
|
||||
bundle = MetadataBundle(repo_dir)
|
||||
bundle.root_update_finished()
|
||||
|
||||
self.assertTrue(bundle.load_local_timestamp())
|
||||
self.assertTrue(bundle.load_local_snapshot())
|
||||
self.assertTrue(bundle.load_local_targets())
|
||||
self.assertTrue(bundle.load_local_delegated_targets('role1','targets'))
|
||||
self.assertTrue(bundle.load_local_delegated_targets('role2','role1'))
|
||||
|
||||
# Make sure loading metadata without its "dependencies" fails
|
||||
bundle = MetadataBundle(repo_dir)
|
||||
|
||||
with self.assertRaises(RuntimeError):
|
||||
bundle.load_local_timestamp()
|
||||
bundle.root_update_finished()
|
||||
with self.assertRaises(RuntimeError):
|
||||
bundle.load_local_snapshot()
|
||||
self.assertTrue(bundle.load_local_timestamp())
|
||||
with self.assertRaises(RuntimeError):
|
||||
bundle.load_local_targets()
|
||||
self.assertTrue(bundle.load_local_snapshot())
|
||||
with self.assertRaises(RuntimeError):
|
||||
bundle.load_local_delegated_targets('role1','targets')
|
||||
self.assertTrue(bundle.load_local_targets())
|
||||
with self.assertRaises(RuntimeError):
|
||||
bundle.load_local_delegated_targets('role2','role1')
|
||||
self.assertTrue(bundle.load_local_delegated_targets('role1','targets'))
|
||||
self.assertTrue(bundle.load_local_delegated_targets('role2','role1'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
utils.configure_test_logging(sys.argv)
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ def update_root(self, data: bytes):
|
|||
def root_update_finished(self):
|
||||
"""Mark root metadata as final."""
|
||||
if self.reference_time is not None:
|
||||
raise ValueError("Root update is already finished")
|
||||
raise RuntimeError("Root update is already finished")
|
||||
|
||||
# Store our reference "now", verify root expiry
|
||||
self.reference_time = datetime.utcnow()
|
||||
|
|
@ -306,7 +306,7 @@ def _load_intermediate_root(self, data: bytes):
|
|||
Note that an expired intermediate root is considered valid: expiry is
|
||||
only checked for the final root in root_update_finished()."""
|
||||
if self.reference_time is not None:
|
||||
raise ValueError("Cannot update root after root update is finished")
|
||||
raise RuntimeError("Cannot update root after root update is finished")
|
||||
|
||||
try:
|
||||
new_root = Metadata.from_bytes(data)
|
||||
|
|
@ -341,9 +341,9 @@ def _load_timestamp(self, data: bytes):
|
|||
"""Verifies and loads 'data' as new timestamp metadata."""
|
||||
if self.reference_time is None:
|
||||
# root_update_finished() not called
|
||||
raise ValueError("Cannot update timestamp before root")
|
||||
raise RuntimeError("Cannot update timestamp before root")
|
||||
if self.snapshot is not None:
|
||||
raise ValueError("Cannot update timestamp after snapshot")
|
||||
raise RuntimeError("Cannot update timestamp after snapshot")
|
||||
|
||||
try:
|
||||
new_timestamp = Metadata.from_bytes(data)
|
||||
|
|
@ -391,9 +391,9 @@ def _load_snapshot(self, data: bytes): # pylint: disable=too-many-branches
|
|||
"""Verifies and loads 'data' as new snapshot metadata."""
|
||||
|
||||
if self.timestamp is None:
|
||||
raise ValueError("Cannot update snapshot before timestamp")
|
||||
raise RuntimeError("Cannot update snapshot before timestamp")
|
||||
if self.targets is not None:
|
||||
raise ValueError("Cannot update snapshot after targets")
|
||||
raise RuntimeError("Cannot update snapshot after targets")
|
||||
|
||||
meta = self.timestamp.signed.meta["snapshot.json"]
|
||||
|
||||
|
|
@ -462,11 +462,11 @@ def _load_delegated_targets(
|
|||
Raises if verification fails
|
||||
"""
|
||||
if self.snapshot is None:
|
||||
raise ValueError("Cannot load targets before snapshot")
|
||||
raise RuntimeError("Cannot load targets before snapshot")
|
||||
|
||||
delegator = self.get(delegator_name)
|
||||
if delegator is None:
|
||||
raise ValueError("Cannot load targets before delegator")
|
||||
raise RuntimeError("Cannot load targets before delegator")
|
||||
|
||||
# Verify against the hashes in snapshot, if any
|
||||
meta = self.snapshot.signed.meta.get(f"{role_name}.json")
|
||||
|
|
|
|||
Loading…
Reference in a new issue