diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-12-02 11:51:38 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-12-02 12:10:26 +0100 |
commit | 8be8eb643a8a1d44d37d7e4b2e650f893ef5edb0 (patch) | |
tree | 17c7c2a9730b724049250938d744dcc0a4cb3fbc /tests/test_recursiveloader.py | |
parent | e69bf65543ad6104a760d0b7f278a7bdfaf7b8e2 (diff) | |
download | gemato-8be8eb643a8a1d44d37d7e4b2e650f893ef5edb0.tar.gz |
tests: Add tests for mismatched Manifest file
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r-- | tests/test_recursiveloader.py | 42 |
1 files changed, 42 insertions, 0 deletions
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) |