def test_convert_group_to_group_layer(self): """ Test converting a QgsLayerTreeGroup to a QgsGroupLayer """ group_node = QgsLayerTreeGroup() options = QgsGroupLayer.LayerOptions(QgsCoordinateTransformContext()) group_layer = group_node.convertToGroupLayer(options) self.assertFalse(group_layer.childLayers()) self.assertEqual(group_node.groupLayer(), group_layer) # if a group layer is already assigned, convertToGroupLayer should do nothing self.assertIsNone(group_node.convertToGroupLayer(options)) group_node.setGroupLayer(None) # add some child layers to node layer = QgsVectorLayer("Point?field=fldtxt:string", "layer1", "memory") group_node.addLayer(layer) layer2 = QgsVectorLayer("Point?field=fldtxt:string", "layer2", "memory") group_node.addLayer(layer2) group_layer = group_node.convertToGroupLayer(options) self.assertEqual(group_layer.childLayers(), [layer2, layer]) self.assertEqual(group_node.groupLayer(), group_layer)
def test_copy_layer_tree_group(self): # copying layer tree group should also copy group layer setting options = QgsGroupLayer.LayerOptions(QgsCoordinateTransformContext()) group_layer = QgsGroupLayer('group', options) group_node = QgsLayerTreeGroup() group_node.setGroupLayer(group_layer) self.assertEqual(group_node.groupLayer(), group_layer) group_node2 = group_node.clone() self.assertEqual(group_node2.groupLayer(), group_layer)
def test_layer_tree_group_layer(self): """ Test setting a group layer on a QgsLayerTreeGroup """ options = QgsGroupLayer.LayerOptions(QgsCoordinateTransformContext()) group_layer = QgsGroupLayer('group', options) group_node = QgsLayerTreeGroup() self.assertFalse(group_node.groupLayer()) group_node.setGroupLayer(group_layer) self.assertEqual(group_node.groupLayer(), group_layer) group_layer.deleteLater() group_layer = None QCoreApplication.sendPostedEvents(None, QEvent.DeferredDelete) # should be automatically cleaned self.assertFalse(group_node.groupLayer())