Skip to content

Commit 14edf3d

Browse files
committed
tests: Add VerificationResult tests
Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
1 parent bfea673 commit 14edf3d

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

tests/test_api.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,14 @@
4141
Metadata,
4242
MetaFile,
4343
Root,
44+
RootVerificationResult,
4445
Signature,
4546
Snapshot,
4647
SuccinctRoles,
4748
TargetFile,
4849
Targets,
4950
Timestamp,
51+
VerificationResult,
5052
)
5153
from tuf.api.serialization import DeserializationError, SerializationError
5254
from tuf.api.serialization.json import JSONSerializer
@@ -470,6 +472,47 @@ def test_signed_verify_delegate(self) -> None:
470472
Snapshot.type, snapshot_md.signed_bytes, snapshot_md.signatures
471473
)
472474

475+
def test_verification_result(self) -> None:
476+
vr = VerificationResult(3, {"a": None}, {"b": None})
477+
self.assertEqual(vr.missing, 2)
478+
self.assertFalse(vr.verified)
479+
self.assertFalse(vr)
480+
481+
# Add a signature
482+
vr.signed["c"] = None
483+
self.assertEqual(vr.missing, 1)
484+
self.assertFalse(vr.verified)
485+
self.assertFalse(vr)
486+
487+
# Add last missing signature
488+
vr.signed["d"] = None
489+
self.assertEqual(vr.missing, 0)
490+
self.assertTrue(vr.verified)
491+
self.assertTrue(vr)
492+
493+
# Add one more signature
494+
vr.signed["e"] = None
495+
self.assertEqual(vr.missing, 0)
496+
self.assertTrue(vr.verified)
497+
self.assertTrue(vr)
498+
499+
def test_root_verification_result(self) -> None:
500+
vr1 = VerificationResult(3, {"a": None}, {"b": None})
501+
vr2 = VerificationResult(1, {"c": None}, {"b": None})
502+
503+
vr = RootVerificationResult(vr1, vr2)
504+
self.assertEqual(vr.signed, {"a": None, "c": None})
505+
self.assertEqual(vr.unsigned, {"b": None})
506+
self.assertFalse(vr.verified)
507+
self.assertFalse(vr)
508+
509+
vr1.signed["c"] = None
510+
vr1.signed["f"] = None
511+
self.assertEqual(vr.signed, {"a": None, "c": None, "f": None})
512+
self.assertEqual(vr.unsigned, {"b": None})
513+
self.assertTrue(vr.verified)
514+
self.assertTrue(vr)
515+
473516
def test_signed_get_verification_result(self) -> None:
474517
# Setup: Load test metadata and keys
475518
root_path = os.path.join(self.repo_dir, "metadata", "root.json")

0 commit comments

Comments
 (0)