Skip to content

Commit e00815d

Browse files
committed
Add test for rendering order
1 parent 168c6f7 commit e00815d

File tree

3 files changed

+91
-0
lines changed

3 files changed

+91
-0
lines changed

tests/src/python/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ ADD_PYTHON_TEST(PyQgsRasterLayer test_qgsrasterlayer.py)
5454
ADD_PYTHON_TEST(PyQgsRectangle test_qgsrectangle.py)
5555
ADD_PYTHON_TEST(PyQgsRelation test_qgsrelation.py)
5656
ADD_PYTHON_TEST(PyQgsRulebasedRenderer test_qgsrulebasedrenderer.py)
57+
ADD_PYTHON_TEST(PyQgsSingleSymbolRenderer test_qgssinglesymbolrenderer.py)
5758
ADD_PYTHON_TEST(PyQgsShapefileProvider test_provider_shapefile.py)
5859
ADD_PYTHON_TEST(PyQgsSpatialIndex test_qgsspatialindex.py)
5960
ADD_PYTHON_TEST(PyQgsSpatialiteProvider test_provider_spatialite.py)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# -*- coding: utf-8 -*-
2+
3+
"""
4+
***************************************************************************
5+
test_qgssinglesymbolrenderer.py
6+
---------------------
7+
Date : December 2015
8+
Copyright : (C) 2015 by Matthias Kuhn
9+
Email : matthias at opengis dot ch
10+
***************************************************************************
11+
* *
12+
* This program is free software; you can redistribute it and/or modify *
13+
* it under the terms of the GNU General Public License as published by *
14+
* the Free Software Foundation; either version 2 of the License, or *
15+
* (at your option) any later version. *
16+
* *
17+
***************************************************************************
18+
"""
19+
20+
__author__ = 'Matthias Kuhn'
21+
__date__ = 'December 2015'
22+
__copyright__ = '(C) 2015, Matthiasd Kuhn'
23+
# This will get replaced with a git SHA1 when you do a git archive
24+
__revision__ = '$Format:%H$'
25+
26+
import qgis
27+
import os
28+
29+
from PyQt4.QtCore import QSize
30+
31+
from qgis.core import (QgsVectorLayer,
32+
QgsMapLayerRegistry,
33+
QgsRectangle,
34+
QgsMultiRenderChecker,
35+
QgsSingleSymbolRendererV2,
36+
QgsFillSymbolV2,
37+
QgsMarkerSymbolV2,
38+
QgsRendererCategoryV2,
39+
QgsCategorizedSymbolRendererV2,
40+
QgsGraduatedSymbolRendererV2,
41+
QgsRendererRangeV2,
42+
QgsFeatureRequest
43+
)
44+
from utilities import (unitTestDataPath,
45+
getQgisTestApp,
46+
TestCase,
47+
unittest
48+
)
49+
# Convenience instances in case you may need them
50+
# not used in this test
51+
QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
52+
TEST_DATA_DIR = unitTestDataPath()
53+
54+
55+
class TestQgsSingleSymbolRenderer(TestCase):
56+
57+
def setUp(self):
58+
myShpFile = os.path.join(TEST_DATA_DIR, 'polys_overlapping.shp')
59+
layer = QgsVectorLayer(myShpFile, 'Polys', 'ogr')
60+
QgsMapLayerRegistry.instance().addMapLayer(layer)
61+
62+
# Create rulebased style
63+
sym1 = QgsFillSymbolV2.createSimple({'color': '#fdbf6f'})
64+
65+
self.renderer = QgsSingleSymbolRendererV2(sym1)
66+
layer.setRendererV2(self.renderer)
67+
68+
rendered_layers = [layer.id()]
69+
self.mapsettings = CANVAS.mapSettings()
70+
self.mapsettings.setOutputSize(QSize(400, 400))
71+
self.mapsettings.setOutputDpi(96)
72+
self.mapsettings.setExtent(QgsRectangle(-163, 22, -70, 52))
73+
self.mapsettings.setLayers(rendered_layers)
74+
75+
def tearDown(self):
76+
QgsMapLayerRegistry.instance().removeAllMapLayers()
77+
78+
def testOrderBy(self):
79+
self.renderer.setOrderBy(QgsFeatureRequest.OrderBy([QgsFeatureRequest.OrderByClause('Value', False)]))
80+
81+
# Setup rendering check
82+
renderchecker = QgsMultiRenderChecker()
83+
renderchecker.setMapSettings(self.mapsettings)
84+
renderchecker.setControlName('expected_singlesymbol_orderby')
85+
result = renderchecker.runTest('singlesymbol_orderby')
86+
87+
assert result
88+
89+
if __name__ == '__main__':
90+
unittest.main()

0 commit comments

Comments
 (0)