Skip to content

Commit 7f85169

Browse files
committed
Move test to correct location
1 parent 70bc526 commit 7f85169

File tree

2 files changed

+45
-43
lines changed

2 files changed

+45
-43
lines changed

tests/src/python/test_qgslayertreemapcanvasbridge.py

+45
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,55 @@ def __init__(self, methodName):
3737
"""Run once on class initialization."""
3838
unittest.TestCase.__init__(self, methodName)
3939

40+
def testLayerOrderUpdatedThroughBridge(self):
41+
""" test that project layer order is updated when layer tree changes """
42+
43+
prj = QgsProject.instance()
44+
prj.clear()
45+
layer = QgsVectorLayer("Point?field=fldtxt:string",
46+
"layer1", "memory")
47+
layer2 = QgsVectorLayer("Point?field=fldtxt:string",
48+
"layer2", "memory")
49+
layer3 = QgsVectorLayer("Point?field=fldtxt:string",
50+
"layer3", "memory")
51+
prj.addMapLayers([layer, layer2, layer3])
52+
53+
canvas = QgsMapCanvas()
54+
bridge = QgsLayerTreeMapCanvasBridge(prj.layerTreeRoot(), canvas)
55+
56+
#custom layer order
57+
bridge.setHasCustomLayerOrder(True)
58+
bridge.setCustomLayerOrder([layer3.id(), layer.id(), layer2.id()])
59+
app.processEvents()
60+
self.assertEqual([l.id() for l in prj.layerOrder()], [layer3.id(), layer.id(), layer2.id()])
61+
62+
# no custom layer order
63+
bridge.setHasCustomLayerOrder(False)
64+
app.processEvents()
65+
self.assertEqual([l.id() for l in prj.layerOrder()], [layer.id(), layer2.id(), layer3.id()])
66+
67+
# mess around with the layer tree order
68+
root = prj.layerTreeRoot()
69+
layer_node = root.findLayer(layer2.id())
70+
cloned_node = layer_node.clone()
71+
parent = layer_node.parent()
72+
parent.insertChildNode(0, cloned_node)
73+
parent.removeChildNode(layer_node)
74+
app.processEvents()
75+
# make sure project respects this
76+
self.assertEqual([l.id() for l in prj.layerOrder()], [layer2.id(), layer.id(), layer3.id()])
77+
78+
# make sure project order includes ALL layers, not just visible ones
79+
layer_node = root.findLayer(layer.id())
80+
layer_node.setItemVisibilityChecked(False)
81+
app.processEvents()
82+
self.assertEqual([l.id() for l in prj.layerOrder()], [layer2.id(), layer.id(), layer3.id()])
83+
4084
def testCustomLayerOrderUpdatedFromProject(self):
4185
""" test that setting project layer order is reflected in custom layer order panel """
4286

4387
prj = QgsProject.instance()
88+
prj.clear()
4489
layer = QgsVectorLayer("Point?field=fldtxt:string",
4590
"layer1", "memory")
4691
layer2 = QgsVectorLayer("Point?field=fldtxt:string",

tests/src/python/test_qgsproject.py

-43
Original file line numberDiff line numberDiff line change
@@ -225,49 +225,6 @@ def testLayerOrder(self):
225225
prj.clear()
226226
self.assertEqual(prj.layerOrder(), [])
227227

228-
def testLayerOrderUpdatedThroughBridge(self):
229-
""" test that project layer order is updated when layer tree changes """
230-
231-
prj = QgsProject.instance()
232-
layer = QgsVectorLayer("Point?field=fldtxt:string",
233-
"layer1", "memory")
234-
layer2 = QgsVectorLayer("Point?field=fldtxt:string",
235-
"layer2", "memory")
236-
layer3 = QgsVectorLayer("Point?field=fldtxt:string",
237-
"layer3", "memory")
238-
prj.addMapLayers([layer, layer2, layer3])
239-
240-
canvas = QgsMapCanvas()
241-
bridge = QgsLayerTreeMapCanvasBridge(prj.layerTreeRoot(), canvas)
242-
243-
#custom layer order
244-
bridge.setHasCustomLayerOrder(True)
245-
bridge.setCustomLayerOrder([layer3.id(), layer.id(), layer2.id()])
246-
app.processEvents()
247-
self.assertEqual([l.id() for l in prj.layerOrder()], [layer3.id(), layer.id(), layer2.id()])
248-
249-
# no custom layer order
250-
bridge.setHasCustomLayerOrder(False)
251-
app.processEvents()
252-
self.assertEqual([l.id() for l in prj.layerOrder()], [layer.id(), layer2.id(), layer3.id()])
253-
254-
# mess around with the layer tree order
255-
root = prj.layerTreeRoot()
256-
layer_node = root.findLayer(layer2.id())
257-
cloned_node = layer_node.clone()
258-
parent = layer_node.parent()
259-
parent.insertChildNode(0, cloned_node)
260-
parent.removeChildNode(layer_node)
261-
app.processEvents()
262-
# make sure project respects this
263-
self.assertEqual([l.id() for l in prj.layerOrder()], [layer2.id(), layer.id(), layer3.id()])
264-
265-
# make sure project order includes ALL layers, not just visible ones
266-
layer_node = root.findLayer(layer.id())
267-
layer_node.setItemVisibilityChecked(False)
268-
app.processEvents()
269-
self.assertEqual([l.id() for l in prj.layerOrder()], [layer2.id(), layer.id(), layer3.id()])
270-
271228

272229
if __name__ == '__main__':
273230
unittest.main()

0 commit comments

Comments
 (0)