summaryrefslogtreecommitdiff
path: root/tests/test_recursiveloader.py
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-12-02 11:51:38 +0100
committerMichał Górny <mgorny@gentoo.org>2017-12-02 12:10:26 +0100
commit8be8eb643a8a1d44d37d7e4b2e650f893ef5edb0 (patch)
tree17c7c2a9730b724049250938d744dcc0a4cb3fbc /tests/test_recursiveloader.py
parente69bf65543ad6104a760d0b7f278a7bdfaf7b8e2 (diff)
downloadgemato-8be8eb643a8a1d44d37d7e4b2e650f893ef5edb0.tar.gz
tests: Add tests for mismatched Manifest file
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r--tests/test_recursiveloader.py42
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)