diff options
Diffstat (limited to 'tests/test_manifest_xml.py')
-rw-r--r-- | tests/test_manifest_xml.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/test_manifest_xml.py b/tests/test_manifest_xml.py index 40385cce..939717be 100644 --- a/tests/test_manifest_xml.py +++ b/tests/test_manifest_xml.py | |||
@@ -235,3 +235,46 @@ class XmlManifestTests(unittest.TestCase): | |||
235 | self.assertCountEqual( | 235 | self.assertCountEqual( |
236 | result['extras'], | 236 | result['extras'], |
237 | ['g1', 'g2', 'g1', 'name:extras', 'all', 'path:path']) | 237 | ['g1', 'g2', 'g1', 'name:extras', 'all', 'path:path']) |
238 | |||
239 | def test_include_levels(self): | ||
240 | root_m = os.path.join(self.manifest_dir, 'root.xml') | ||
241 | with open(root_m, 'w') as fp: | ||
242 | fp.write(""" | ||
243 | <manifest> | ||
244 | <remote name="test-remote" fetch="http://localhost" /> | ||
245 | <default remote="test-remote" revision="refs/heads/main" /> | ||
246 | <include name="level1.xml" groups="level1-group" /> | ||
247 | <project name="root-name1" path="root-path1" /> | ||
248 | <project name="root-name2" path="root-path2" groups="r2g1,r2g2" /> | ||
249 | </manifest> | ||
250 | """) | ||
251 | with open(os.path.join(self.manifest_dir, 'level1.xml'), 'w') as fp: | ||
252 | fp.write(""" | ||
253 | <manifest> | ||
254 | <include name="level2.xml" groups="level2-group" /> | ||
255 | <project name="level1-name1" path="level1-path1" /> | ||
256 | </manifest> | ||
257 | """) | ||
258 | with open(os.path.join(self.manifest_dir, 'level2.xml'), 'w') as fp: | ||
259 | fp.write(""" | ||
260 | <manifest> | ||
261 | <project name="level2-name1" path="level2-path1" groups="l2g1,l2g2" /> | ||
262 | </manifest> | ||
263 | """) | ||
264 | include_m = manifest_xml.XmlManifest(self.repodir, root_m) | ||
265 | for proj in include_m.projects: | ||
266 | if proj.name == 'root-name1': | ||
267 | # Check include group not set on root level proj. | ||
268 | self.assertNotIn('level1-group', proj.groups) | ||
269 | if proj.name == 'root-name2': | ||
270 | # Check root proj group not removed. | ||
271 | self.assertIn('r2g1', proj.groups) | ||
272 | if proj.name == 'level1-name1': | ||
273 | # Check level1 proj has inherited group level 1. | ||
274 | self.assertIn('level1-group', proj.groups) | ||
275 | if proj.name == 'level2-name1': | ||
276 | # Check level2 proj has inherited group levels 1 and 2. | ||
277 | self.assertIn('level1-group', proj.groups) | ||
278 | self.assertIn('level2-group', proj.groups) | ||
279 | # Check level2 proj group not removed. | ||
280 | self.assertIn('l2g1', proj.groups) | ||