diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-12-02 20:09:24 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-12-02 20:09:24 +0100 |
commit | 033d047608706d3ad30354921da3990255348b5b (patch) | |
tree | 11a9642742fcd3958eac70084dd1535ebff98585 /tests/test_recursiveloader.py | |
parent | d5ff20a0fc5a2e08e68f718f53d24c0309174a18 (diff) | |
download | gemato-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.py | 53 |
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() |