Skip to content

Commit e6ec34a

Browse files
jgrocharldhont
authored andcommitted
DDL update: saving layer styles on databases
Fix #11421
1 parent 59967dd commit e6ec34a

File tree

5 files changed

+41
-26
lines changed

5 files changed

+41
-26
lines changed

tests/src/python/test_qgssymbollayerv2_readsld.py

+41-25
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,9 @@
2828
import os
2929
from qgis.testing import start_app, unittest
3030
from qgis.core import (QgsVectorLayer,
31-
QgsProject,
32-
QgsRectangle,
33-
QgsMultiRenderChecker,
34-
QgsSingleSymbolRenderer,
35-
QgsFillSymbol,
36-
QgsFeatureRequest
31+
QgsFeature,
32+
QgsGeometry,
33+
QgsPoint
3734
)
3835
from qgis.testing import unittest
3936
from qgis.testing.mocked import get_iface
@@ -43,33 +40,52 @@
4340

4441
TEST_DATA_DIR = unitTestDataPath()
4542

43+
44+
def createLayerWithOneLine():
45+
# create a temporary layer
46+
# linelayer = iface.addVectorLayer("LineString?crs=epsg:4326&field=gid:int&field=name:string", "simple_line", "memory")
47+
linelayer = QgsVectorLayer("LineString?crs=epsg:4326&field=gid:int&field=name:string", "simple_line", "memory")
48+
one = QgsFeature(linelayer.dataProvider().fields(), 0)
49+
one.setAttributes([1, 'one'])
50+
one.setGeometry(QgsGeometry.fromPolyline([QgsPoint(-7, 38), QgsPoint(-8, 42)]))
51+
linelayer.dataProvider().addFeatures([one])
52+
return linelayer
53+
54+
4655
class TestQgsSymbolLayerReadSld(unittest.TestCase):
4756

4857
"""
49-
This class loads an SLD style and checks if the styling was properly applied
58+
This class checks if SLD styles are properly applied
5059
"""
5160

5261
def setUp(self):
5362
self.iface = get_iface()
54-
myShpFile = os.path.join(TEST_DATA_DIR, 'streams.shp')
55-
self.layer = QgsVectorLayer(myShpFile, 'streams', 'ogr')
63+
64+
# test <CSSParameter>VALUE<CSSParameter/>
65+
# test <CSSParameter><ogc:Literal>VALUE<ogc:Literal/><CSSParameter/>
66+
def test_Literal_within_CSSParameter(self):
67+
layer = createLayerWithOneLine()
5668
mFilePath = os.path.join(TEST_DATA_DIR, 'symbol_layer/external_sld/simple_streams.sld')
57-
self.layer.loadSldStyle(mFilePath)
58-
self.props = self.layer.rendererV2().symbol().symbolLayers()[0].properties()
59-
60-
def testLineColor(self):
61-
# stroke CSSParameter within ogc:Literal
62-
# expected color is #003EBA, RGB 0,62,186
63-
self.assertEqual(self.layer.rendererV2().symbol().symbolLayers()[0].color().name(), '#003eba')
64-
65-
def testLineWidth(self):
66-
# stroke-width CSSParameter within ogc:Literal
67-
self.assertEqual(self.props['line_width'], '2')
68-
69-
def testLineOpacity(self):
70-
# stroke-opacity CSSParameter NOT within ogc:Literal
71-
# stroke-opacity=0.1
72-
self.assertEqual(self.props['line_color'], '0,62,186,25')
69+
layer.loadSldStyle(mFilePath)
70+
props = layer.rendererV2().symbol().symbolLayers()[0].properties()
71+
72+
def testLineColor():
73+
# stroke CSSParameter within ogc:Literal
74+
# expected color is #003EBA, RGB 0,62,186
75+
self.assertEqual(layer.rendererV2().symbol().symbolLayers()[0].color().name(), '#003eba')
76+
77+
def testLineWidth():
78+
# stroke-width CSSParameter within ogc:Literal
79+
self.assertEqual(props['line_width'], '2')
80+
81+
def testLineOpacity():
82+
# stroke-opacity CSSParameter NOT within ogc:Literal
83+
# stroke-opacity=0.1
84+
self.assertEqual(props['line_color'], '0,62,186,25')
85+
86+
testLineColor()
87+
testLineWidth()
88+
testLineOpacity()
7389

7490
if __name__ == '__main__':
7591
unittest.main()

tests/testdata/streams.dbf

-9.44 KB
Binary file not shown.

tests/testdata/streams.prj

-1
This file was deleted.

tests/testdata/streams.shp

-62.9 KB
Binary file not shown.

tests/testdata/streams.shx

-932 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)