From 14edf3d044b8c36d43d8271eac2880c2adc1cf2e Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Mon, 5 Feb 2024 15:26:31 +0200 Subject: [PATCH] tests: Add VerificationResult tests Signed-off-by: Jussi Kukkonen --- tests/test_api.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/tests/test_api.py b/tests/test_api.py index 616425c2..bf0b9606 100755 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -41,12 +41,14 @@ Metadata, MetaFile, Root, + RootVerificationResult, Signature, Snapshot, SuccinctRoles, TargetFile, Targets, Timestamp, + VerificationResult, ) from tuf.api.serialization import DeserializationError, SerializationError from tuf.api.serialization.json import JSONSerializer @@ -470,6 +472,47 @@ def test_signed_verify_delegate(self) -> None: Snapshot.type, snapshot_md.signed_bytes, snapshot_md.signatures ) + def test_verification_result(self) -> None: + vr = VerificationResult(3, {"a": None}, {"b": None}) + self.assertEqual(vr.missing, 2) + self.assertFalse(vr.verified) + self.assertFalse(vr) + + # Add a signature + vr.signed["c"] = None + self.assertEqual(vr.missing, 1) + self.assertFalse(vr.verified) + self.assertFalse(vr) + + # Add last missing signature + vr.signed["d"] = None + self.assertEqual(vr.missing, 0) + self.assertTrue(vr.verified) + self.assertTrue(vr) + + # Add one more signature + vr.signed["e"] = None + self.assertEqual(vr.missing, 0) + self.assertTrue(vr.verified) + self.assertTrue(vr) + + def test_root_verification_result(self) -> None: + vr1 = VerificationResult(3, {"a": None}, {"b": None}) + vr2 = VerificationResult(1, {"c": None}, {"b": None}) + + vr = RootVerificationResult(vr1, vr2) + self.assertEqual(vr.signed, {"a": None, "c": None}) + self.assertEqual(vr.unsigned, {"b": None}) + self.assertFalse(vr.verified) + self.assertFalse(vr) + + vr1.signed["c"] = None + vr1.signed["f"] = None + self.assertEqual(vr.signed, {"a": None, "c": None, "f": None}) + self.assertEqual(vr.unsigned, {"b": None}) + self.assertTrue(vr.verified) + self.assertTrue(vr) + def test_signed_get_verification_result(self) -> None: # Setup: Load test metadata and keys root_path = os.path.join(self.repo_dir, "metadata", "root.json")