summaryrefslogtreecommitdiff
path: root/tests/test_recursiveloader.py
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-10-27 20:23:27 +0200
committerMichał Górny <mgorny@gentoo.org>2017-10-27 20:23:27 +0200
commit2d69c2f2cd43fea3e4d153b3853a2eacf8aeac67 (patch)
tree3b6b83e675761fcda7ffe3d9af75d29527c8d0da /tests/test_recursiveloader.py
parent9375abd7adf21b63d48eb8be59684e4924c3bea7 (diff)
downloadgemato-2d69c2f2cd43fea3e4d153b3853a2eacf8aeac67.tar.gz
recursiveloader: Iterate over Manifests from most specific first
Ensure that when iterating over Manifests, the more specific paths will come before the less specific. It is important for updates since changes to deeper Manifests will affect their checksums in higher Manifests.
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r--tests/test_recursiveloader.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py
index 8eac573..29bfb0f 100644
--- a/tests/test_recursiveloader.py
+++ b/tests/test_recursiveloader.py
@@ -75,6 +75,26 @@ DATA test 0 MD5 d41d8cd98f00b204e9800998ecf8427e
self.assertIn('sub/deeper/Manifest', m.loaded_manifests)
self.assertIn('other/Manifest', m.loaded_manifests)
+ def test__iter_manifests_for_path_order(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ m.load_manifests_for_path('', recursive=True)
+ self.assertListEqual([d for d, k
+ in m._iter_manifests_for_path('sub/deeper')],
+ ['sub/deeper', 'sub', ''])
+ self.assertListEqual([d for d, k
+ in m._iter_manifests_for_path('other')],
+ ['other', ''])
+
+ def test__iter_manifests_for_path_recursively_order(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ m.load_manifests_for_path('', recursive=True)
+ self.assertListEqual([d for d, k
+ in m._iter_manifests_for_path('sub',
+ recursive=True)],
+ ['sub/deeper', 'sub', ''])
+
def test_load_sub_manifest_recursively(self):
m = gemato.recursiveloader.ManifestRecursiveLoader(
os.path.join(self.dir, 'Manifest'))