Add test conditions

for _refresh_targets_metadata(), _fileinfo_has_changed(), and _update_versioninfo()
This commit is contained in:
Vladimir Diaz 2017-07-31 15:46:37 -04:00
parent ca52527360
commit 5364480ec3
No known key found for this signature in database
GPG key ID: 5DEE9B97B0E2289A

View file

@ -412,6 +412,12 @@ def test_1__update_versioninfo(self):
self.assertEqual(len(versioninfo_dict), 3)
self.assertEqual(versioninfo_dict['bad_role.json'], None)
# Verify that the versioninfo specified in Timestamp is used if the Snapshot
# role hasn't been downloaded yet.
del self.repository_updater.metadata['current']['snapshot']
self.assertRaises(self.repository_updater._update_versioninfo('snapshot.json'))
self.assertEqual(versioninfo_dict['snapshot.json']['version'], 1)
@ -465,6 +471,21 @@ def test_2__fileinfo_has_changed(self):
self.assertTrue(self.repository_updater._fileinfo_has_changed('root.json',
new_root_fileinfo))
# Verify that _fileinfo_has_changed() returns True if no fileinfo (or set
# to None) exists for some role.
self.assertTrue(self.repository_updater._fileinfo_has_changed('bad.json',
new_root_fileinfo))
saved_fileinfo = self.repository_updater.fileinfo['root.json']
self.repository_updater.fileinfo['root.json'] = None
self.assertTrue(self.repository_updater._fileinfo_has_changed('root.json',
new_root_fileinfo))
self.repository_updater.fileinfo['root.json'] = saved_fileinfo
new_root_fileinfo['hashes']['sha666'] = '666'
self.repository_updater._fileinfo_has_changed('root.json',
new_root_fileinfo)
@ -892,7 +913,13 @@ def test_4__refresh_targets_metadata(self):
self.repository_updater.metadata['current']['snapshot']['meta']['targets.json']
self.repository_updater._refresh_targets_metadata(refresh_all_delegated_roles=True)
# Test for non-existing rolename.
self.repository_updater._refresh_targets_metadata('bad_rolename',
refresh_all_delegated_roles=False)
# Test that non-json metadata in Snapshot is ignored.
self.repository_updater.metadata['current']['snapshot']['meta']['bad_role.xml'] = {}
self.repository_updater._refresh_targets_metadata(refresh_all_delegated_roles=True)