mirror of
https://github.com/theupdateframework/python-tuf
synced 2026-05-24 10:08:28 +00:00
tests: Test client max metadata length config
Fixes #1730 Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
This commit is contained in:
parent
c47121b1cb
commit
17ec875cd8
1 changed files with 25 additions and 0 deletions
|
|
@ -18,6 +18,7 @@
|
|||
from tests.repository_simulator import RepositorySimulator
|
||||
from tuf.api.exceptions import (
|
||||
BadVersionNumberError,
|
||||
DownloadLengthMismatchError,
|
||||
ExpiredMetadataError,
|
||||
LengthOrHashMismatchError,
|
||||
UnsignedMetadataError,
|
||||
|
|
@ -777,6 +778,30 @@ def test_expired_metadata(self, mock_time: Mock) -> None:
|
|||
md = Metadata.from_file(f"{self.metadata_dir}/{role}.json")
|
||||
self.assertEqual(md.signed.version, 2)
|
||||
|
||||
def test_max_metadata_lengths(self) -> None:
|
||||
"""Test that clients configured max metadata lengths are respected"""
|
||||
|
||||
# client has root v1 already: create a new one available for download
|
||||
self.sim.root.version += 1
|
||||
self.sim.publish_root()
|
||||
|
||||
config_vars = [
|
||||
"root_max_length",
|
||||
"timestamp_max_length",
|
||||
"snapshot_max_length",
|
||||
"targets_max_length",
|
||||
]
|
||||
# make sure going over any length limit raises DownloadLengthMismatchError
|
||||
for var_name in config_vars:
|
||||
updater = self._init_updater()
|
||||
setattr(updater.config, var_name, 100)
|
||||
with self.assertRaises(DownloadLengthMismatchError):
|
||||
updater.refresh()
|
||||
|
||||
# All good with normal length limits
|
||||
updater = self._init_updater()
|
||||
updater.refresh()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--dump" in sys.argv:
|
||||
|
|
|
|||
Loading…
Reference in a new issue