summaryrefslogtreecommitdiff
path: root/tests/test_recursiveloader.py
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-10-31 23:45:18 +0100
committerMichał Górny <mgorny@gentoo.org>2017-10-31 23:50:55 +0100
commitd8c5d672200ff156d0a4ee7e436a2f353429cc92 (patch)
tree36ceae4a87e5632cdf24a583b9542d2c0ee44a14 /tests/test_recursiveloader.py
parent27d05cb768353002fcb4ec797df9d46c084997b4 (diff)
downloadgemato-d8c5d672200ff156d0a4ee7e436a2f353429cc92.tar.gz
recursiveloader: Optimize collecting existing Manifests
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r--tests/test_recursiveloader.py33
1 files changed, 30 insertions, 3 deletions
diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py
index 097cd69..366522a 100644
--- a/tests/test_recursiveloader.py
+++ b/tests/test_recursiveloader.py
@@ -2619,10 +2619,28 @@ MANIFEST z/Manifest 0 MD5 d41d8cd98f00b204e9800998ecf8427e
m.save_manifests()
m.assert_directory_verifies()
+ def test_load_unregistered_manifests(self):
+ # remove the top Manifest
+ os.unlink(os.path.join(self.dir, 'Manifest'))
+
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'),
+ allow_create=True)
+ # we allow extra entries for files that referenced within
+ # newly added Manifest
+ self.assertListEqual(sorted(m.load_unregistered_manifests('')),
+ ['a/Manifest', 'a/x/Manifest', 'a/z/Manifest',
+ 'b/Manifest'])
+ self.assertIn('a/Manifest', m.loaded_manifests)
+ self.assertNotIn('a/Manifest', m.updated_manifests)
+ self.assertIsNone(m.find_path_entry('a/Manifest'))
+ self.assertIn('b/Manifest', m.loaded_manifests)
+ self.assertNotIn('b/Manifest', m.updated_manifests)
+ self.assertIsNone(m.find_path_entry('b/Manifest'))
+
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'))
+ # remove the top Manifest
+ os.unlink(os.path.join(self.dir, 'Manifest'))
m = gemato.recursiveloader.ManifestRecursiveLoader(
os.path.join(self.dir, 'Manifest'),
@@ -2660,6 +2678,15 @@ DATA c 0 MD5 d41d8cd98f00b204e9800998ecf8427e
'b/test': u'',
}
+ def test_load_unregistered_manifests(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ self.assertListEqual(sorted(m.load_unregistered_manifests('')),
+ ['a/Manifest'])
+ self.assertIn('a/Manifest', m.loaded_manifests)
+ self.assertNotIn('a/Manifest', m.updated_manifests)
+ self.assertIsNone(m.find_path_entry('a/Manifest'))
+
def test_update_entries_for_directory(self):
m = gemato.recursiveloader.ManifestRecursiveLoader(
os.path.join(self.dir, 'Manifest'))