diff options
Diffstat (limited to 'tests')
| -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) | ||
