Skip to content

Commit 344b964

Browse files
committed
Update unit tests for raster layer
1 parent 9f8b92d commit 344b964

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

src/core/raster/qgsrasterlayer.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,11 @@ QgsRasterLayer *QgsRasterLayer::clone() const
149149
QgsRasterLayer *layer = new QgsRasterLayer( source(), originalName(), mProviderKey );
150150
QgsMapLayer::clone( layer );
151151

152-
for ( int i = 0; i < mPipe.size(); i++ )
152+
// do not clone data provider which is the first element in pipe
153+
for ( int i = 1; i < mPipe.size(); i++ )
153154
{
154-
layer->pipe()->set( mPipe.at( i )->clone() );
155+
if ( mPipe.at( i ) )
156+
layer->pipe()->set( mPipe.at( i )->clone() );
155157
}
156158

157159
return layer;

tests/src/python/test_qgsrasterlayer.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
from qgis.core import (QgsRaster,
2525
QgsRasterLayer,
26+
QgsReadWriteContext,
2627
QgsColorRampShader,
2728
QgsContrastEnhancement,
2829
QgsProject,
@@ -666,8 +667,32 @@ def testClone(self):
666667
renderer.setOpacity(33.3)
667668
layer.setRenderer(renderer)
668669

670+
# clone layer
669671
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())
671696

672697

673698
if __name__ == '__main__':

0 commit comments

Comments
 (0)