def test_link(self): """Verify Link handling with new names.""" manifest = manifest_xml.XmlManifest(self.repodir, self.manifest_file) with open(os.path.join(self.manifest_dir, 'foo.xml'), 'w') as fp: fp.write('<manifest></manifest>') manifest.Link('foo.xml') with open(self.manifest_file) as fp: self.assertIn('<include name="foo.xml" />', fp.read())
def test_include_levels(self): root_m = os.path.join(self.manifest_dir, 'root.xml') with open(root_m, 'w') as fp: fp.write(""" <manifest> <remote name="test-remote" fetch="http://localhost" /> <default remote="test-remote" revision="refs/heads/main" /> <include name="level1.xml" groups="level1-group" /> <project name="root-name1" path="root-path1" /> <project name="root-name2" path="root-path2" groups="r2g1,r2g2" /> </manifest> """) with open(os.path.join(self.manifest_dir, 'level1.xml'), 'w') as fp: fp.write(""" <manifest> <include name="level2.xml" groups="level2-group" /> <project name="level1-name1" path="level1-path1" /> </manifest> """) with open(os.path.join(self.manifest_dir, 'level2.xml'), 'w') as fp: fp.write(""" <manifest> <project name="level2-name1" path="level2-path1" groups="l2g1,l2g2" /> </manifest> """) include_m = manifest_xml.XmlManifest(self.repodir, root_m) for proj in include_m.projects: if proj.name == 'root-name1': # Check include group not set on root level proj. self.assertNotIn('level1-group', proj.groups) if proj.name == 'root-name2': # Check root proj group not removed. self.assertIn('r2g1', proj.groups) if proj.name == 'level1-name1': # Check level1 proj has inherited group level 1. self.assertIn('level1-group', proj.groups) if proj.name == 'level2-name1': # Check level2 proj has inherited group levels 1 and 2. self.assertIn('level1-group', proj.groups) self.assertIn('level2-group', proj.groups) # Check level2 proj group not removed. self.assertIn('l2g1', proj.groups)
def getXmlManifest(self, data): """Helper to initialize a manifest for testing.""" with open(self.manifest_file, 'w') as fp: fp.write(data) return manifest_xml.XmlManifest(self.repodir, self.manifest_file)