From 8be8eb643a8a1d44d37d7e4b2e650f893ef5edb0 Mon Sep 17 00:00:00 2001 From: Michał Górny Date: Sat, 2 Dec 2017 11:51:38 +0100 Subject: tests: Add tests for mismatched Manifest file --- tests/test_recursiveloader.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'tests/test_recursiveloader.py') diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py index 9560309..6d2aa96 100644 --- a/tests/test_recursiveloader.py +++ b/tests/test_recursiveloader.py @@ -2587,3 +2587,45 @@ DATA foo\\x5Cbar 0 MD5 d41d8cd98f00b204e9800998ecf8427e ''', FILENAME: u'' } + + +class SubManifestMismatchTest(TempDirTestCase): + """ + Test handling sub-Manifest whose checksum is mismatched. + """ + + DIRS = ['a'] + FILES = { + 'Manifest': u''' +MANIFEST a/Manifest 0 MD5 d41d8cd98f00b204e9800998ecf8427e +''', + 'a/Manifest': u''' +DATA test 0 MD5 d41d8cd98f00b204e9800998ecf8427e +''', + 'a/test': u'', + } + + def test_init(self): + """ + Init should not attempt to load sub-Manifest, and therefore + not fail. + """ + m = gemato.recursiveloader.ManifestRecursiveLoader( + os.path.join(self.dir, 'Manifest')) + self.assertIn('Manifest', m.loaded_manifests) + + def test_load_sub_manifest(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + os.path.join(self.dir, 'Manifest')) + self.assertNotIn('a/Manifest', m.loaded_manifests) + self.assertRaises(gemato.exceptions.ManifestMismatch, + m.load_manifests_for_path, 'a/test') + self.assertNotIn('a/Manifest', m.loaded_manifests) + + def test_load_manifests_recursively(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + os.path.join(self.dir, 'Manifest')) + self.assertNotIn('a/Manifest', m.loaded_manifests) + self.assertRaises(gemato.exceptions.ManifestMismatch, + m.load_manifests_for_path, '', recursive=True) + self.assertNotIn('a/Manifest', m.loaded_manifests) -- cgit v1.2.3