Skip to content

Commit e663d19

Browse files
committed
Add/update tests
1 parent c85cf23 commit e663d19

File tree

39 files changed

+15315
-806
lines changed

39 files changed

+15315
-806
lines changed

tests/src/python/test_qgsserver.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555

5656

5757
class QgsServerTestBase(unittest.TestCase):
58+
5859
"""Base class for QGIS server tests"""
5960

6061
# Set to True in child classes to re-generate reference files for this class
@@ -97,6 +98,9 @@ def setUp(self):
9798

9899
d = unitTestDataPath('qgis_server_accesscontrol') + '/'
99100
self.projectPath = os.path.join(d, "project.qgs")
101+
self.projectAnnotationPath = os.path.join(d, "project_with_annotations.qgs")
102+
self.projectStatePath = os.path.join(d, "project_state.qgs")
103+
self.projectUseLayerIdsPath = os.path.join(d, "project_use_layerids.qgs")
100104

101105
# Clean env just to be sure
102106
env_vars = ['QUERY_STRING', 'QGIS_PROJECT_FILE']
@@ -187,14 +191,14 @@ def _execute_request(self, qs, requestMethod=QgsServerRequest.GetMethod, data=No
187191
self.server.handleRequest(request, response)
188192
headers = []
189193
rh = response.headers()
190-
rk = list(rh.keys())
191-
rk.sort()
194+
rk = sorted(rh.keys())
192195
for k in rk:
193196
headers.append(("%s: %s" % (k, rh[k])).encode('utf-8'))
194197
return b"\n".join(headers) + b"\n\n", bytes(response.body())
195198

196199

197200
class TestQgsServer(QgsServerTestBase):
201+
198202
"""Tests container"""
199203

200204
# Set to True to re-generate reference files for this class

tests/src/python/test_qgsserver_accesscontrol.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ def authorizedLayerAttributes(self, layer, attributes):
142142
if not self._active:
143143
return super(RestrictedAccessControl, self).authorizedLayerAttributes(layer, attributes)
144144

145-
if "colour" in attributes: # spellok
146-
attributes.remove("colour") # spellok
145+
if "color" in attributes: # spellok
146+
attributes.remove("color") # spellok
147147
return attributes
148148

149149
def allowToEdit(self, layer, feature):
@@ -169,8 +169,7 @@ def _execute_request(cls, qs, requestMethod=QgsServerRequest.GetMethod, data=Non
169169
cls._server.handleRequest(request, response)
170170
headers = []
171171
rh = response.headers()
172-
rk = list(rh.keys())
173-
rk.sort()
172+
rk = sorted(rh.keys())
174173
for k in rk:
175174
headers.append(("%s: %s" % (k, rh[k])).encode('utf-8'))
176175
return b"\n".join(headers) + b"\n\n", bytes(response.body())
@@ -250,7 +249,7 @@ def test_wms_getprojectsettings(self):
250249
str(response).find("<TreeName>Country</TreeName>") != -1,
251250
"No Country layer in GetProjectSettings\n%s" % response)
252251
self.assertTrue(
253-
str(response).find("<LayerDrawingOrder>Country_Labels,Country,dem,Hello_Filter_SubsetString,Hello_Project_SubsetString,Hello_SubsetString,Hello,db_point</LayerDrawingOrder>") != -1,
252+
str(response).find("<LayerDrawingOrder>Country_Diagrams,Country_Labels,Country,dem,Hello_Filter_SubsetString,Hello_Project_SubsetString,Hello_SubsetString,Hello,db_point</LayerDrawingOrder>") != -1,
254253
"LayerDrawingOrder in GetProjectSettings\n%s" % response)
255254

256255
response, headers = self._get_restricted(query_string)
@@ -261,7 +260,7 @@ def test_wms_getprojectsettings(self):
261260
str(response).find("<TreeName>Country</TreeName>") != -1,
262261
"Country layer in GetProjectSettings\n%s" % response)
263262
self.assertTrue(
264-
str(response).find("<LayerDrawingOrder>Country_Labels,dem,Hello_Filter_SubsetString,Hello_Project_SubsetString,Hello_SubsetString,Hello,db_point</LayerDrawingOrder>") != -1,
263+
str(response).find("<LayerDrawingOrder>Country_Diagrams,Country_Labels,dem,Hello_Filter_SubsetString,Hello_Project_SubsetString,Hello_SubsetString,Hello,db_point</LayerDrawingOrder>") != -1,
265264
"LayerDrawingOrder in GetProjectSettings\n%s" % response)
266265

267266
def test_wms_getprojectsettings(self):
@@ -451,18 +450,18 @@ def test_wms_getfeatureinfo_hello(self):
451450
str(response).find("<qgs:pk>1</qgs:pk>") != -1,
452451
"No result in GetFeatureInfo\n%s" % response)
453452
self.assertTrue(
454-
str(response).find("<qgs:colour>red</qgs:colour>") != -1, # spellok
453+
str(response).find("<qgs:color>red</qgs:color>") != -1, # spellok
455454
"No color in result of GetFeatureInfo\n%s" % response)
456455

457456
response, headers = self._get_restricted(query_string)
458457
self.assertTrue(
459458
str(response).find("<qgs:pk>1</qgs:pk>") != -1,
460459
"No result in GetFeatureInfo\n%s" % response)
461460
self.assertFalse(
462-
str(response).find("<qgs:colour>red</qgs:colour>") != -1, # spellok
461+
str(response).find("<qgs:color>red</qgs:color>") != -1, # spellok
463462
"Unexpected color in result of GetFeatureInfo\n%s" % response)
464463
self.assertFalse(
465-
str(response).find("<qgs:colour>NULL</qgs:colour>") != -1, # spellok
464+
str(response).find("<qgs:color>NULL</qgs:color>") != -1, # spellok
466465
"Unexpected color NULL in result of GetFeatureInfo\n%s" % response)
467466

468467
def test_wms_getfeatureinfo_hello2(self):
@@ -603,18 +602,18 @@ def test_wfs_getfeature_hello(self):
603602
str(response).find("<qgs:pk>1</qgs:pk>") != -1,
604603
"No result in GetFeature\n%s" % response)
605604
self.assertTrue(
606-
str(response).find("<qgs:colour>red</qgs:colour>") != -1, # spellok
605+
str(response).find("<qgs:color>red</qgs:color>") != -1, # spellok
607606
"No color in result of GetFeature\n%s" % response)
608607

609608
response, headers = self._post_restricted(data)
610609
self.assertTrue(
611610
str(response).find("<qgs:pk>1</qgs:pk>") != -1,
612611
"No result in GetFeature\n%s" % response)
613612
self.assertFalse(
614-
str(response).find("<qgs:colour>red</qgs:colour>") != -1, # spellok
613+
str(response).find("<qgs:color>red</qgs:color>") != -1, # spellok
615614
"Unexpected color in result of GetFeature\n%s" % response)
616615
self.assertFalse(
617-
str(response).find("<qgs:colour>NULL</qgs:colour>") != -1, # spellok
616+
str(response).find("<qgs:color>NULL</qgs:color>") != -1, # spellok
618617
"Unexpected color NULL in result of GetFeature\n%s" % response)
619618

620619
def test_wfs_getfeature_hello2(self):

tests/src/python/test_qgsserver_projectutils.py

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@ def setUp(self):
2727
self.testdata_path = unitTestDataPath('qgis_server_project') + '/'
2828

2929
self.prj = QgsProject()
30-
prjPath = os.path.join(self.testdata_path, "project.qgs")
31-
self.prj.setFileName(prjPath)
32-
self.prj.read()
30+
self.prjPath = os.path.join(self.testdata_path, "project.qgs")
31+
self.prj.read(self.prjPath)
32+
33+
self.prj2 = QgsProject()
34+
self.prj2Path = os.path.join(self.testdata_path, "project2.qgs")
35+
self.prj2.read(self.prj2Path)
3336

3437
def tearDown(self):
3538
pass
@@ -43,6 +46,40 @@ def test_url(self):
4346
self.assertEqual(QgsServerProjectUtils.wcsServiceUrl(self.prj), "my_wcs_advertised_url")
4447
self.assertEqual(QgsServerProjectUtils.wfsServiceUrl(self.prj), "my_wfs_advertised_url")
4548

49+
def test_wmsuselayerids(self):
50+
self.assertEqual(QgsServerProjectUtils.wmsUseLayerIds(self.prj), False)
51+
self.assertEqual(QgsServerProjectUtils.wmsUseLayerIds(self.prj2), True)
52+
53+
def test_wmsrestrictedlayers(self):
54+
# retrieve entry from project
55+
result = QgsServerProjectUtils.wmsRestrictedLayers(self.prj)
56+
expected = []
57+
expected.append('points') # layer
58+
expected.append('group1') # local group
59+
expected.append('groupEmbedded') # embedded group
60+
61+
self.assertListEqual(sorted(expected), sorted(result))
62+
63+
def test_wfslayersids(self):
64+
# retrieve entry from project
65+
result = QgsServerProjectUtils.wfsLayerIds(self.prj)
66+
67+
expected = []
68+
expected.append('multipoint20170309173637804') # from embedded group
69+
expected.append('points20170309173738552') # local layer
70+
expected.append('polys20170309173913723') # from local group
71+
72+
self.assertEqual(expected, result)
73+
74+
def test_wcslayersids(self):
75+
# retrieve entry from project
76+
result = QgsServerProjectUtils.wcsLayerIds(self.prj)
77+
78+
expected = []
79+
expected.append('landsat20170313142548073')
80+
81+
self.assertEqual(expected, result)
82+
4683

4784
if __name__ == '__main__':
4885
unittest.main()

0 commit comments

Comments
 (0)