def testCyclicDependency(self): inDoc = """ <maplayers> <maplayer> <id>layerB</id> <layerDependencies> <layer id="layerA"/> </layerDependencies> </maplayer> <maplayer> <id>layerA</id> <layerDependencies> <layer id="layerB"/> </layerDependencies> </maplayer> </maplayers>""" doc = QDomDocument("testdoc") doc.setContent(inDoc) dep = QgsLayerDefinition.DependencySorter(doc) self.assertTrue(dep.hasCycle())
def testDependency(self): inDoc = """ <maplayers> <maplayer> <id>layerB</id> <layerDependencies> <layer id="layerA"/> </layerDependencies> </maplayer> <maplayer> <id>layerA</id> </maplayer> </maplayers>""" doc = QDomDocument("testdoc") doc.setContent(inDoc) dep = QgsLayerDefinition.DependencySorter(doc) nodes = dep.sortedLayerNodes() self.assertTrue(not dep.hasCycle()) self.assertTrue(not dep.hasMissingDependency()) self.assertEqual(nodes[0].firstChildElement("id").text(), "layerA") self.assertEqual(nodes[1].firstChildElement("id").text(), "layerB")
def testMissingDependency(self): inDoc = """ <maplayers> <maplayer> <id>layerB</id> <layerDependencies> <layer id="layerA"/> </layerDependencies> </maplayer> <maplayer> <id>layerA</id> <layerDependencies> <layer id="layerC"/> </layerDependencies> </maplayer> </maplayers>""" doc = QDomDocument("testdoc") doc.setContent(inDoc) dep = QgsLayerDefinition.DependencySorter(doc) nodes = dep.sortedLayerNodes() self.assertTrue(not dep.hasCycle()) self.assertTrue(dep.hasMissingDependency())
def testDependencyQgz(self): path = os.path.join(TEST_DATA_DIR, "embedded_groups", "project1.qgz") dep = QgsLayerDefinition.DependencySorter(path) ids = dep.sortedLayerIds() self.assertEqual(len(ids), 3)