|
26 | 26 | ) |
27 | 27 | from tuf.api.serialization.json import JSONSerializer |
28 | 28 | from tuf.ngclient._internal.trusted_metadata_set import TrustedMetadataSet |
| 29 | +from tuf.ngclient.config import EnvelopeType |
29 | 30 |
|
30 | 31 | logger = logging.getLogger(__name__) |
31 | 32 |
|
@@ -94,7 +95,9 @@ def hashes_length_modifier(timestamp: Timestamp) -> None: |
94 | 95 | ) |
95 | 96 |
|
96 | 97 | def setUp(self) -> None: |
97 | | - self.trusted_set = TrustedMetadataSet(self.metadata[Root.type]) |
| 98 | + self.trusted_set = TrustedMetadataSet( |
| 99 | + self.metadata[Root.type], EnvelopeType.METADATA |
| 100 | + ) |
98 | 101 |
|
99 | 102 | def _update_all_besides_targets( |
100 | 103 | self, |
@@ -193,22 +196,37 @@ def test_out_of_order_ops(self) -> None: |
193 | 196 | self.metadata["role1"], "role1", Targets.type |
194 | 197 | ) |
195 | 198 |
|
196 | | - def test_root_with_invalid_json(self) -> None: |
197 | | - # Test loading initial root and root update |
198 | | - for test_func in [TrustedMetadataSet, self.trusted_set.update_root]: |
199 | | - # root is not json |
200 | | - with self.assertRaises(exceptions.RepositoryError): |
201 | | - test_func(b"") # type: ignore[operator] |
| 199 | + def test_bad_initial_root(self) -> None: |
| 200 | + # root is not json |
| 201 | + with self.assertRaises(exceptions.RepositoryError): |
| 202 | + TrustedMetadataSet(b"", EnvelopeType.METADATA) |
202 | 203 |
|
203 | | - # root is invalid |
204 | | - root = Metadata.from_bytes(self.metadata[Root.type]) |
205 | | - root.signed.version += 1 |
206 | | - with self.assertRaises(exceptions.UnsignedMetadataError): |
207 | | - test_func(root.to_bytes()) # type: ignore[operator] |
| 204 | + # root is invalid |
| 205 | + root = Metadata.from_bytes(self.metadata[Root.type]) |
| 206 | + root.signed.version += 1 |
| 207 | + with self.assertRaises(exceptions.UnsignedMetadataError): |
| 208 | + TrustedMetadataSet(root.to_bytes(), EnvelopeType.METADATA) |
208 | 209 |
|
209 | | - # metadata is of wrong type |
210 | | - with self.assertRaises(exceptions.RepositoryError): |
211 | | - test_func(self.metadata[Snapshot.type]) # type: ignore[operator] |
| 210 | + # metadata is of wrong type |
| 211 | + with self.assertRaises(exceptions.RepositoryError): |
| 212 | + TrustedMetadataSet( |
| 213 | + self.metadata[Snapshot.type], EnvelopeType.METADATA |
| 214 | + ) |
| 215 | + |
| 216 | + def test_bad_root_update(self) -> None: |
| 217 | + # root is not json |
| 218 | + with self.assertRaises(exceptions.RepositoryError): |
| 219 | + self.trusted_set.update_root(b"") |
| 220 | + |
| 221 | + # root is invalid |
| 222 | + root = Metadata.from_bytes(self.metadata[Root.type]) |
| 223 | + root.signed.version += 1 |
| 224 | + with self.assertRaises(exceptions.UnsignedMetadataError): |
| 225 | + self.trusted_set.update_root(root.to_bytes()) |
| 226 | + |
| 227 | + # metadata is of wrong type |
| 228 | + with self.assertRaises(exceptions.RepositoryError): |
| 229 | + self.trusted_set.update_root(self.metadata[Snapshot.type]) |
212 | 230 |
|
213 | 231 | def test_top_level_md_with_invalid_json(self) -> None: |
214 | 232 | top_level_md: List[Tuple[bytes, Callable[[bytes], Signed]]] = [ |
@@ -261,7 +279,7 @@ def root_expired_modifier(root: Root) -> None: |
261 | 279 |
|
262 | 280 | # intermediate root can be expired |
263 | 281 | root = self.modify_metadata(Root.type, root_expired_modifier) |
264 | | - tmp_trusted_set = TrustedMetadataSet(root) |
| 282 | + tmp_trusted_set = TrustedMetadataSet(root, EnvelopeType.METADATA) |
265 | 283 | # update timestamp to trigger final root expiry check |
266 | 284 | with self.assertRaises(exceptions.ExpiredMetadataError): |
267 | 285 | tmp_trusted_set.update_timestamp(self.metadata[Timestamp.type]) |
|
0 commit comments