|
23 | 23 |
|
24 | 24 | from qgis.core import (QgsRaster,
|
25 | 25 | QgsRasterLayer,
|
| 26 | + QgsReadWriteContext, |
26 | 27 | QgsColorRampShader,
|
27 | 28 | QgsContrastEnhancement,
|
28 | 29 | QgsProject,
|
@@ -666,8 +667,32 @@ def testClone(self):
|
666 | 667 | renderer.setOpacity(33.3)
|
667 | 668 | layer.setRenderer(renderer)
|
668 | 669 |
|
| 670 | + # clone layer |
669 | 671 | clone = layer.clone()
|
670 |
| - self.assertEqual(clone.renderer().opacity(), 33.3) |
| 672 | + |
| 673 | + # generate xml from layer |
| 674 | + layer_doc = QDomDocument("doc") |
| 675 | + layer_elem = layer_doc.createElement("maplayer") |
| 676 | + layer.writeLayerXml(layer_elem, layer_doc, QgsReadWriteContext()) |
| 677 | + |
| 678 | + # generate xml from clone |
| 679 | + clone_doc = QDomDocument("doc") |
| 680 | + clone_elem = clone_doc.createElement("maplayer") |
| 681 | + clone.writeLayerXml(clone_elem, clone_doc, QgsReadWriteContext()) |
| 682 | + |
| 683 | + # replace id within xml of clone |
| 684 | + clone_id_elem = clone_elem.firstChildElement("id") |
| 685 | + clone_id_elem_patch = clone_doc.createElement("id") |
| 686 | + clone_id_elem_patch_value = clone_doc.createTextNode(layer.id()) |
| 687 | + clone_id_elem_patch.appendChild(clone_id_elem_patch_value) |
| 688 | + clone_elem.replaceChild(clone_id_elem_patch, clone_id_elem) |
| 689 | + |
| 690 | + # update doc |
| 691 | + clone_doc.appendChild(clone_elem) |
| 692 | + layer_doc.appendChild(layer_elem) |
| 693 | + |
| 694 | + # compare xml documents |
| 695 | + self.assertEqual(layer_doc.toString(), clone_doc.toString()) |
671 | 696 |
|
672 | 697 |
|
673 | 698 | if __name__ == '__main__':
|
|
0 commit comments