summaryrefslogtreecommitdiff
path: root/tests/test_recursiveloader.py
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-12-02 20:09:24 +0100
committerMichał Górny <mgorny@gentoo.org>2017-12-02 20:09:24 +0100
commit033d047608706d3ad30354921da3990255348b5b (patch)
tree11a9642742fcd3958eac70084dd1535ebff98585 /tests/test_recursiveloader.py
parentd5ff20a0fc5a2e08e68f718f53d24c0309174a18 (diff)
downloadgemato-033d047608706d3ad30354921da3990255348b5b.tar.gz
Add tests for entries for files in missing directory
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r--tests/test_recursiveloader.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py
index cf56ee0..51e3727 100644
--- a/tests/test_recursiveloader.py
+++ b/tests/test_recursiveloader.py
@@ -2647,3 +2647,56 @@ DATA test 0 MD5 d41d8cd98f00b204e9800998ecf8427e
'r', encoding='utf8') as f:
self.assertNotEqual(f.read(), self.FILES['Manifest'].lstrip())
m.assert_directory_verifies()
+
+
+class ManifestMissingDirectoryTest(TempDirTestCase):
+ """
+ Test handling Manifest with file in directory that does not exist.
+ """
+
+ DIRS = []
+ FILES = {
+ 'Manifest': u'''
+DATA sub/test 0 MD5 d41d8cd98f00b204e9800998ecf8427e
+''',
+ }
+
+ def test_assert_directory_verifies(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ self.assertRaises(gemato.exceptions.ManifestMismatch,
+ m.assert_directory_verifies, '')
+
+ def test_assert_directory_verifies_nonstrict_via_fail_handler(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ self.assertTrue(m.assert_directory_verifies('',
+ fail_handler=lambda x: True))
+
+ def test_cli_verifies(self):
+ self.assertEqual(
+ gemato.cli.main(['gemato', 'verify', self.dir]),
+ 1)
+
+ def test_update_entry_for_path(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ m.update_entry_for_path('sub/test')
+ self.assertIsNone(m.find_path_entry('sub/test'))
+ m.save_manifests()
+ with io.open(os.path.join(self.dir, 'Manifest'),
+ 'r', encoding='utf8') as f:
+ self.assertNotEqual(f.read(), self.FILES['Manifest'])
+ m.assert_directory_verifies()
+
+ def test_update_entries_for_directory(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'),
+ hashes=['SHA256', 'SHA512'])
+ m.update_entries_for_directory('')
+ self.assertIsNone(m.find_path_entry('sub/test'))
+ m.save_manifests()
+ with io.open(os.path.join(self.dir, 'Manifest'),
+ 'r', encoding='utf8') as f:
+ self.assertNotEqual(f.read(), self.FILES['Manifest'])
+ m.assert_directory_verifies()