summaryrefslogtreecommitdiff
path: root/tests/test_recursiveloader.py
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-10-31 22:40:10 +0100
committerMichał Górny <mgorny@gentoo.org>2017-10-31 22:40:10 +0100
commit9d1a634c7d3a3dee94f25853351543ebcceccd05 (patch)
tree117881591d1e0d47c08fbda8078f472f2fafe24e /tests/test_recursiveloader.py
parent8b0cf602b45a550a396f96ec9605fd3e7cfbe5c2 (diff)
downloadgemato-9d1a634c7d3a3dee94f25853351543ebcceccd05.tar.gz
recursiveloader: Optimize selecting Manifest for new entries
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 cc4d3b9..c3263db 100644
--- a/tests/test_recursiveloader.py
+++ b/tests/test_recursiveloader.py
@@ -2555,3 +2555,45 @@ class CreateNewCompressedManifestTest(TempDirTestCase):
os.path.join(self.dir, 'Manifest.gz')))
self.assertTrue(os.path.exists(
os.path.join(self.dir, 'Manifest')))
+
+
+class MultipleDeepNestedManifestTest(TempDirTestCase):
+ DIRS = ['a', 'a/x', 'a/y', 'a/z', 'b']
+ FILES = {
+ 'Manifest': u'''
+MANIFEST a/Manifest 119 MD5 6956767cfbb3276adbdce86cca559719
+MANIFEST b/Manifest 0 MD5 d41d8cd98f00b204e9800998ecf8427e
+''',
+ 'test': u'',
+ 'a/Manifest': u'''
+MANIFEST x/Manifest 0 MD5 d41d8cd98f00b204e9800998ecf8427e
+MANIFEST z/Manifest 0 MD5 d41d8cd98f00b204e9800998ecf8427e
+''',
+ 'a/test': u'',
+ 'a/x/Manifest': u'',
+ 'a/x/test': u'',
+ 'a/y/test': u'',
+ 'a/z/Manifest': u'',
+ 'a/z/test': u'',
+ 'b/Manifest': u'',
+ 'b/test': u'',
+ }
+
+ def test_update_entries_for_directory(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ m.update_entries_for_directory('', hashes=['SHA256', 'SHA512'])
+ m.save_manifests()
+ m.assert_directory_verifies()
+
+ def test_update_entries_for_directory_without_manifests(self):
+ for dirpath, dirs, files in os.walk(self.dir):
+ if 'Manifest' in files:
+ os.unlink(os.path.join(dirpath, 'Manifest'))
+
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'),
+ allow_create=True)
+ m.update_entries_for_directory('', hashes=['SHA256', 'SHA512'])
+ m.save_manifests()
+ m.assert_directory_verifies()