From 6508a54943ce16e5f0d6631423643c6f154c2854 Mon Sep 17 00:00:00 2001 From: Martin Vrachev Date: Tue, 24 Aug 2021 14:48:21 +0300 Subject: [PATCH] Move tests to test_metadata_serialization Move the Delegation class serialization tests from "test_api.py" to test_metadata_serialization.py module focused on serialization testing. Additionally, a test for empty keys and roles will be added in my upcomming pr #1511. Signed-off-by: Martin Vrachev --- tests/test_api.py | 17 ----------------- tests/test_metadata_serialization.py | 7 ++++++- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/tests/test_api.py b/tests/test_api.py index 4d8ef1f92a..929a440f73 100755 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -511,23 +511,6 @@ def test_is_target_in_pathpattern(self): ) - def test_delegation_class(self): - # empty keys and roles - delegations_dict = {"keys":{}, "roles":[]} - delegations = Delegations.from_dict(delegations_dict.copy()) - self.assertEqual(delegations_dict, delegations.to_dict()) - - # Test some basic missing or broken input - invalid_delegations_dicts = [ - {}, - {"keys":None, "roles":None}, - {"keys":{"foo":0}, "roles":[]}, - {"keys":{}, "roles":["foo"]}, - ] - for d in invalid_delegations_dicts: - with self.assertRaises((KeyError, AttributeError)): - Delegations.from_dict(d) - def test_metadata_targets(self): targets_path = os.path.join( self.repo_dir, 'metadata', 'targets.json') diff --git a/tests/test_metadata_serialization.py b/tests/test_metadata_serialization.py index 7b3894e3e7..ef02315a95 100644 --- a/tests/test_metadata_serialization.py +++ b/tests/test_metadata_serialization.py @@ -305,6 +305,11 @@ def test_invalid_delegated_role_serialization(self, test_case_data: str): invalid_delegations: DataSet = { + "empty delegations": '{}', + "bad keys": '{"keys": "foo", \ + "roles": [{"keyids": ["keyid"], "name": "a", "paths": ["fn1", "fn2"], "terminating": false, "threshold": 3}]}', + "bad roles": '{"keys": {"keyid" : {"keytype": "rsa", "scheme": "rsassa-pss-sha256", "keyval": {"public": "foo"}}}, \ + "roles": ["foo"]}', "duplicate role names": '{"keys": {"keyid" : {"keytype": "rsa", "scheme": "rsassa-pss-sha256", "keyval": {"public": "foo"}}}, \ "roles": [ \ {"keyids": ["keyid"], "name": "a", "paths": ["fn1", "fn2"], "terminating": false, "threshold": 3}, \ @@ -316,7 +321,7 @@ def test_invalid_delegated_role_serialization(self, test_case_data: str): @run_sub_tests_with_dataset(invalid_delegations) def test_invalid_delegation_serialization(self, test_case_data: str): case_dict = json.loads(test_case_data) - with self.assertRaises(ValueError): + with self.assertRaises((ValueError, KeyError, AttributeError)): Delegations.from_dict(copy.deepcopy(case_dict))