diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-10-31 23:45:18 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-10-31 23:50:55 +0100 |
commit | d8c5d672200ff156d0a4ee7e436a2f353429cc92 (patch) | |
tree | 36ceae4a87e5632cdf24a583b9542d2c0ee44a14 /tests/test_recursiveloader.py | |
parent | 27d05cb768353002fcb4ec797df9d46c084997b4 (diff) | |
download | gemato-d8c5d672200ff156d0a4ee7e436a2f353429cc92.tar.gz |
recursiveloader: Optimize collecting existing Manifests
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r-- | tests/test_recursiveloader.py | 33 |
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')) |