Skip to content

Commit 52442f5

Browse files
committedJan 16, 2016
added a test for loading QLR files
1 parent 6971bd8 commit 52442f5

File tree

2 files changed

+342
-1
lines changed

2 files changed

+342
-1
lines changed
 

‎tests/src/python/test_qgslayerdefinition.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,19 @@
1515
import qgis
1616

1717
from qgis.core import (QGis,
18+
QgsProject,
19+
QgsMapLayerRegistry,
1820
QgsLayerDefinition
1921
)
2022

21-
from utilities import (TestCase, unittest)
23+
from utilities import (TestCase, unittest, getQgisTestApp, unitTestDataPath)
2224

2325
from PyQt4.QtCore import QVariant
2426
from PyQt4.QtXml import QDomDocument
2527

28+
QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
29+
TEST_DATA_DIR = unitTestDataPath()
30+
2631

2732
class TestQgsLayerDefinition(TestCase):
2833

@@ -93,5 +98,18 @@ def testCyclicDependency(self):
9398
nodes = dep.sortedLayerNodes()
9499
self.assertTrue(dep.hasCycle())
95100

101+
def testVectorAndRaster(self):
102+
# Load a simple QLR containing a vector layer and a raster layer.
103+
QgsMapLayerRegistry.instance().removeAllMapLayers()
104+
layers = QgsMapLayerRegistry.instance().mapLayers()
105+
self.assertEqual(len(layers), 0)
106+
107+
(result, errMsg) = QgsLayerDefinition.loadLayerDefinition(TEST_DATA_DIR + '/vector_and_raster.qlr', QgsProject.instance().layerTreeRoot())
108+
self.assertTrue(result)
109+
110+
layers = QgsMapLayerRegistry.instance().mapLayers()
111+
self.assertEqual(len(layers), 2)
112+
QgsMapLayerRegistry.instance().removeAllMapLayers()
113+
96114
if __name__ == '__main__':
97115
unittest.main()

‎tests/testdata/vector_and_raster.qlr

Lines changed: 323 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,323 @@
1+
<!DOCTYPE qgis-layer-definition>
2+
<qlr>
3+
<layer-tree-group expanded="1" checked="Qt::Checked" name="">
4+
<customproperties/>
5+
<layer-tree-layer expanded="1" checked="Qt::Checked" id="memoryLayer20160115230029581" name="memoryLayer">
6+
<customproperties/>
7+
</layer-tree-layer>
8+
<layer-tree-layer expanded="1" checked="Qt::Checked" id="rgb256x25620160115225951554" name="rgb256x256">
9+
<customproperties/>
10+
</layer-tree-layer>
11+
</layer-tree-group>
12+
<maplayers>
13+
<maplayer minimumScale="-4.65661e-10" maximumScale="1e+08" simplifyDrawingHints="0" minLabelScale="0" maxLabelScale="1e+08" simplifyDrawingTol="1" geometry="Point" simplifyMaxScale="1" type="vector" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
14+
<id>memoryLayer20160115230029581</id>
15+
<datasource>memory?geometry=Point&amp;crs=EPSG:4326&amp;field=attr1:integer(3,0)&amp;field=attr2:string(50,0)</datasource>
16+
<shortname>memoryLayer</shortname>
17+
<title></title>
18+
<abstract></abstract>
19+
<keywordList>
20+
<value></value>
21+
</keywordList>
22+
<layername>memoryLayer</layername>
23+
<srs>
24+
<spatialrefsys>
25+
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
26+
<srsid>3452</srsid>
27+
<srid>4326</srid>
28+
<authid>EPSG:4326</authid>
29+
<description>WGS 84</description>
30+
<projectionacronym>longlat</projectionacronym>
31+
<ellipsoidacronym>WGS84</ellipsoidacronym>
32+
<geographicflag>true</geographicflag>
33+
</spatialrefsys>
34+
</srs>
35+
<provider encoding="System">memory</provider>
36+
<previewExpression>COALESCE( "attr1", '&lt;NULL>' )</previewExpression>
37+
<vectorjoins/>
38+
<layerDependencies/>
39+
<expressionfields/>
40+
<map-layer-style-manager current="">
41+
<map-layer-style name=""/>
42+
</map-layer-style-manager>
43+
<edittypes>
44+
<edittype widgetv2type="TextEdit" name="attr1">
45+
<widgetv2config IsMultiline="0" fieldEditable="1" UseHtml="0" labelOnTop="0"/>
46+
</edittype>
47+
<edittype widgetv2type="TextEdit" name="attr2">
48+
<widgetv2config IsMultiline="0" fieldEditable="1" UseHtml="0" labelOnTop="0"/>
49+
</edittype>
50+
</edittypes>
51+
<renderer-v2 forceraster="0" symbollevels="0" type="singleSymbol">
52+
<symbols>
53+
<symbol alpha="1" clip_to_extent="1" type="marker" name="0">
54+
<layer pass="0" class="SimpleMarker" locked="0">
55+
<prop k="angle" v="0"/>
56+
<prop k="color" v="156,9,46,255"/>
57+
<prop k="horizontal_anchor_point" v="1"/>
58+
<prop k="name" v="circle"/>
59+
<prop k="offset" v="0,0"/>
60+
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
61+
<prop k="offset_unit" v="MM"/>
62+
<prop k="outline_color" v="0,0,0,255"/>
63+
<prop k="outline_style" v="solid"/>
64+
<prop k="outline_width" v="0"/>
65+
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
66+
<prop k="outline_width_unit" v="MM"/>
67+
<prop k="scale_method" v="diameter"/>
68+
<prop k="size" v="2"/>
69+
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
70+
<prop k="size_unit" v="MM"/>
71+
<prop k="vertical_anchor_point" v="1"/>
72+
</layer>
73+
</symbol>
74+
</symbols>
75+
<rotation/>
76+
<sizescale scalemethod="diameter"/>
77+
</renderer-v2>
78+
<labeling type="simple"/>
79+
<customproperties>
80+
<property key="labeling" value="pal"/>
81+
<property key="labeling/addDirectionSymbol" value="false"/>
82+
<property key="labeling/angleOffset" value="0"/>
83+
<property key="labeling/blendMode" value="0"/>
84+
<property key="labeling/bufferBlendMode" value="0"/>
85+
<property key="labeling/bufferColorA" value="255"/>
86+
<property key="labeling/bufferColorB" value="255"/>
87+
<property key="labeling/bufferColorG" value="255"/>
88+
<property key="labeling/bufferColorR" value="255"/>
89+
<property key="labeling/bufferDraw" value="false"/>
90+
<property key="labeling/bufferJoinStyle" value="64"/>
91+
<property key="labeling/bufferNoFill" value="false"/>
92+
<property key="labeling/bufferSize" value="1"/>
93+
<property key="labeling/bufferSizeInMapUnits" value="false"/>
94+
<property key="labeling/bufferSizeMapUnitMaxScale" value="0"/>
95+
<property key="labeling/bufferSizeMapUnitMinScale" value="0"/>
96+
<property key="labeling/bufferTransp" value="0"/>
97+
<property key="labeling/centroidInside" value="false"/>
98+
<property key="labeling/centroidWhole" value="false"/>
99+
<property key="labeling/decimals" value="3"/>
100+
<property key="labeling/displayAll" value="false"/>
101+
<property key="labeling/dist" value="0"/>
102+
<property key="labeling/distInMapUnits" value="false"/>
103+
<property key="labeling/distMapUnitMaxScale" value="0"/>
104+
<property key="labeling/distMapUnitMinScale" value="0"/>
105+
<property key="labeling/drawLabels" value="false"/>
106+
<property key="labeling/enabled" value="false"/>
107+
<property key="labeling/fieldName" value="attr1"/>
108+
<property key="labeling/fitInPolygonOnly" value="false"/>
109+
<property key="labeling/fontCapitals" value="0"/>
110+
<property key="labeling/fontFamily" value="MS Shell Dlg 2"/>
111+
<property key="labeling/fontItalic" value="false"/>
112+
<property key="labeling/fontLetterSpacing" value="0"/>
113+
<property key="labeling/fontLimitPixelSize" value="false"/>
114+
<property key="labeling/fontMaxPixelSize" value="10000"/>
115+
<property key="labeling/fontMinPixelSize" value="3"/>
116+
<property key="labeling/fontSize" value="8.25"/>
117+
<property key="labeling/fontSizeInMapUnits" value="false"/>
118+
<property key="labeling/fontSizeMapUnitMaxScale" value="0"/>
119+
<property key="labeling/fontSizeMapUnitMinScale" value="0"/>
120+
<property key="labeling/fontStrikeout" value="false"/>
121+
<property key="labeling/fontUnderline" value="false"/>
122+
<property key="labeling/fontWeight" value="50"/>
123+
<property key="labeling/fontWordSpacing" value="0"/>
124+
<property key="labeling/formatNumbers" value="false"/>
125+
<property key="labeling/isExpression" value="false"/>
126+
<property key="labeling/labelOffsetInMapUnits" value="true"/>
127+
<property key="labeling/labelOffsetMapUnitMaxScale" value="0"/>
128+
<property key="labeling/labelOffsetMapUnitMinScale" value="0"/>
129+
<property key="labeling/labelPerPart" value="false"/>
130+
<property key="labeling/leftDirectionSymbol" value="&lt;"/>
131+
<property key="labeling/limitNumLabels" value="false"/>
132+
<property key="labeling/maxCurvedCharAngleIn" value="20"/>
133+
<property key="labeling/maxCurvedCharAngleOut" value="-20"/>
134+
<property key="labeling/maxNumLabels" value="2000"/>
135+
<property key="labeling/mergeLines" value="false"/>
136+
<property key="labeling/minFeatureSize" value="0"/>
137+
<property key="labeling/multilineAlign" value="0"/>
138+
<property key="labeling/multilineHeight" value="1"/>
139+
<property key="labeling/namedStyle" value="Normal"/>
140+
<property key="labeling/obstacle" value="true"/>
141+
<property key="labeling/obstacleFactor" value="1"/>
142+
<property key="labeling/obstacleType" value="0"/>
143+
<property key="labeling/offsetType" value="0"/>
144+
<property key="labeling/placeDirectionSymbol" value="0"/>
145+
<property key="labeling/placement" value="0"/>
146+
<property key="labeling/placementFlags" value="10"/>
147+
<property key="labeling/plussign" value="false"/>
148+
<property key="labeling/predefinedPositionOrder" value="TR,TL,BR,BL,R,L,TSR,BSR"/>
149+
<property key="labeling/preserveRotation" value="true"/>
150+
<property key="labeling/previewBkgrdColor" value="#ffffff"/>
151+
<property key="labeling/priority" value="5"/>
152+
<property key="labeling/quadOffset" value="4"/>
153+
<property key="labeling/repeatDistance" value="0"/>
154+
<property key="labeling/repeatDistanceMapUnitMaxScale" value="0"/>
155+
<property key="labeling/repeatDistanceMapUnitMinScale" value="0"/>
156+
<property key="labeling/repeatDistanceUnit" value="1"/>
157+
<property key="labeling/reverseDirectionSymbol" value="false"/>
158+
<property key="labeling/rightDirectionSymbol" value=">"/>
159+
<property key="labeling/scaleMax" value="10000000"/>
160+
<property key="labeling/scaleMin" value="1"/>
161+
<property key="labeling/scaleVisibility" value="false"/>
162+
<property key="labeling/shadowBlendMode" value="6"/>
163+
<property key="labeling/shadowColorB" value="0"/>
164+
<property key="labeling/shadowColorG" value="0"/>
165+
<property key="labeling/shadowColorR" value="0"/>
166+
<property key="labeling/shadowDraw" value="false"/>
167+
<property key="labeling/shadowOffsetAngle" value="135"/>
168+
<property key="labeling/shadowOffsetDist" value="1"/>
169+
<property key="labeling/shadowOffsetGlobal" value="true"/>
170+
<property key="labeling/shadowOffsetMapUnitMaxScale" value="0"/>
171+
<property key="labeling/shadowOffsetMapUnitMinScale" value="0"/>
172+
<property key="labeling/shadowOffsetUnits" value="1"/>
173+
<property key="labeling/shadowRadius" value="1.5"/>
174+
<property key="labeling/shadowRadiusAlphaOnly" value="false"/>
175+
<property key="labeling/shadowRadiusMapUnitMaxScale" value="0"/>
176+
<property key="labeling/shadowRadiusMapUnitMinScale" value="0"/>
177+
<property key="labeling/shadowRadiusUnits" value="1"/>
178+
<property key="labeling/shadowScale" value="100"/>
179+
<property key="labeling/shadowTransparency" value="30"/>
180+
<property key="labeling/shadowUnder" value="0"/>
181+
<property key="labeling/shapeBlendMode" value="0"/>
182+
<property key="labeling/shapeBorderColorA" value="255"/>
183+
<property key="labeling/shapeBorderColorB" value="128"/>
184+
<property key="labeling/shapeBorderColorG" value="128"/>
185+
<property key="labeling/shapeBorderColorR" value="128"/>
186+
<property key="labeling/shapeBorderWidth" value="0"/>
187+
<property key="labeling/shapeBorderWidthMapUnitMaxScale" value="0"/>
188+
<property key="labeling/shapeBorderWidthMapUnitMinScale" value="0"/>
189+
<property key="labeling/shapeBorderWidthUnits" value="1"/>
190+
<property key="labeling/shapeDraw" value="false"/>
191+
<property key="labeling/shapeFillColorA" value="255"/>
192+
<property key="labeling/shapeFillColorB" value="255"/>
193+
<property key="labeling/shapeFillColorG" value="255"/>
194+
<property key="labeling/shapeFillColorR" value="255"/>
195+
<property key="labeling/shapeJoinStyle" value="64"/>
196+
<property key="labeling/shapeOffsetMapUnitMaxScale" value="0"/>
197+
<property key="labeling/shapeOffsetMapUnitMinScale" value="0"/>
198+
<property key="labeling/shapeOffsetUnits" value="1"/>
199+
<property key="labeling/shapeOffsetX" value="0"/>
200+
<property key="labeling/shapeOffsetY" value="0"/>
201+
<property key="labeling/shapeRadiiMapUnitMaxScale" value="0"/>
202+
<property key="labeling/shapeRadiiMapUnitMinScale" value="0"/>
203+
<property key="labeling/shapeRadiiUnits" value="1"/>
204+
<property key="labeling/shapeRadiiX" value="0"/>
205+
<property key="labeling/shapeRadiiY" value="0"/>
206+
<property key="labeling/shapeRotation" value="0"/>
207+
<property key="labeling/shapeRotationType" value="0"/>
208+
<property key="labeling/shapeSVGFile" value=""/>
209+
<property key="labeling/shapeSizeMapUnitMaxScale" value="0"/>
210+
<property key="labeling/shapeSizeMapUnitMinScale" value="0"/>
211+
<property key="labeling/shapeSizeType" value="0"/>
212+
<property key="labeling/shapeSizeUnits" value="1"/>
213+
<property key="labeling/shapeSizeX" value="0"/>
214+
<property key="labeling/shapeSizeY" value="0"/>
215+
<property key="labeling/shapeTransparency" value="0"/>
216+
<property key="labeling/shapeType" value="0"/>
217+
<property key="labeling/textColorA" value="255"/>
218+
<property key="labeling/textColorB" value="0"/>
219+
<property key="labeling/textColorG" value="0"/>
220+
<property key="labeling/textColorR" value="0"/>
221+
<property key="labeling/textTransp" value="0"/>
222+
<property key="labeling/upsidedownLabels" value="0"/>
223+
<property key="labeling/wrapChar" value=""/>
224+
<property key="labeling/xOffset" value="0"/>
225+
<property key="labeling/yOffset" value="0"/>
226+
<property key="labeling/zIndex" value="0"/>
227+
<property key="variableNames" value="_fields_"/>
228+
<property key="variableValues" value=""/>
229+
</customproperties>
230+
<blendMode>0</blendMode>
231+
<featureBlendMode>0</featureBlendMode>
232+
<layerTransparency>0</layerTransparency>
233+
<displayfield>attr1</displayfield>
234+
<label>0</label>
235+
<labelattributes>
236+
<label fieldname="" text="Label"/>
237+
<family fieldname="" name="MS Shell Dlg 2"/>
238+
<size fieldname="" units="pt" value="12"/>
239+
<bold fieldname="" on="0"/>
240+
<italic fieldname="" on="0"/>
241+
<underline fieldname="" on="0"/>
242+
<strikeout fieldname="" on="0"/>
243+
<color fieldname="" red="0" blue="0" green="0"/>
244+
<x fieldname=""/>
245+
<y fieldname=""/>
246+
<offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/>
247+
<angle fieldname="" value="0" auto="0"/>
248+
<alignment fieldname="" value="center"/>
249+
<buffercolor fieldname="" red="255" blue="255" green="255"/>
250+
<buffersize fieldname="" units="pt" value="1"/>
251+
<bufferenabled fieldname="" on=""/>
252+
<multilineenabled fieldname="" on=""/>
253+
<selectedonly on=""/>
254+
</labelattributes>
255+
<SingleCategoryDiagramRenderer diagramType="Pie">
256+
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" sizeType="MM" minScaleDenominator="-4.65661e-10">
257+
<fontProperties description="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" style=""/>
258+
</DiagramCategory>
259+
</SingleCategoryDiagramRenderer>
260+
<DiagramLayerSettings yPosColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
261+
<annotationform></annotationform>
262+
<excludeAttributesWMS/>
263+
<excludeAttributesWFS/>
264+
<attributeactions/>
265+
<editform></editform>
266+
<editforminit/>
267+
<editforminitcodesource>0</editforminitcodesource>
268+
<editforminitfilepath></editforminitfilepath>
269+
<editforminitcode></editforminitcode>
270+
<featformsuppress>0</featformsuppress>
271+
<editorlayout>generatedlayout</editorlayout>
272+
<widgets/>
273+
<conditionalstyles>
274+
<rowstyles/>
275+
<fieldstyles/>
276+
</conditionalstyles>
277+
</maplayer>
278+
<maplayer minimumScale="0" maximumScale="1e+08" type="raster" hasScaleBasedVisibilityFlag="0">
279+
<id>rgb256x25620160115225951554</id>
280+
<datasource>./rgb256x256.png</datasource>
281+
<shortname>rgb256x256</shortname>
282+
<title></title>
283+
<abstract></abstract>
284+
<keywordList>
285+
<value></value>
286+
</keywordList>
287+
<layername>rgb256x256</layername>
288+
<srs>
289+
<spatialrefsys>
290+
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
291+
<srsid>3452</srsid>
292+
<srid>4326</srid>
293+
<authid>EPSG:4326</authid>
294+
<description>WGS 84</description>
295+
<projectionacronym>longlat</projectionacronym>
296+
<ellipsoidacronym>WGS84</ellipsoidacronym>
297+
<geographicflag>true</geographicflag>
298+
</spatialrefsys>
299+
</srs>
300+
<customproperties>
301+
<property key="identify/format" value="Value"/>
302+
</customproperties>
303+
<provider>gdal</provider>
304+
<noData>
305+
<noDataList bandNo="1" useSrcNoData="0"/>
306+
<noDataList bandNo="2" useSrcNoData="0"/>
307+
<noDataList bandNo="3" useSrcNoData="0"/>
308+
</noData>
309+
<map-layer-style-manager current="">
310+
<map-layer-style name=""/>
311+
</map-layer-style-manager>
312+
<pipe>
313+
<rasterrenderer opacity="1" alphaBand="-1" blueBand="3" greenBand="2" type="multibandcolor" redBand="1">
314+
<rasterTransparency/>
315+
</rasterrenderer>
316+
<brightnesscontrast brightness="0" contrast="0"/>
317+
<huesaturation colorizeGreen="128" colorizeOn="0" colorizeRed="255" colorizeBlue="128" grayscaleMode="0" saturation="0" colorizeStrength="100"/>
318+
<rasterresampler maxOversampling="2"/>
319+
</pipe>
320+
<blendMode>0</blendMode>
321+
</maplayer>
322+
</maplayers>
323+
</qlr>

0 commit comments

Comments
 (0)