Skip to content

Commit 13a00aa

Browse files
authored
Merge pull request #5399 from pblottiere/server_flaky_tests
[server] WIP : reactivate flaky server tests for WMS requests
2 parents 8d64e2e + 3c18232 commit 13a00aa

File tree

2 files changed

+52
-6
lines changed

2 files changed

+52
-6
lines changed

tests/src/python/test_qgsserver.py

+40
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,46 @@ def _execute_request(self, qs, requestMethod=QgsServerRequest.GetMethod, data=No
215215
return b"\n".join(headers) + b"\n\n", bytes(response.body())
216216

217217

218+
class TestQgsServerTestBase(unittest.TestCase):
219+
220+
def test_assert_xml_equal(self):
221+
engine = QgsServerTestBase()
222+
223+
# test bad assertion
224+
expected = b'</WFSLayers>\n<Layer queryable="1">\n'
225+
response = b'<Layer>\n'
226+
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)
227+
228+
expected = b'</WFSLayers>\n<Layer queryable="1">\n'
229+
response = b'</WFSLayers>\n<Layer>\n'
230+
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)
231+
232+
expected = b'</WFSLayers>\n<Layer queryable="1">\n'
233+
response = b'</WFSLayers>\n<Layer fake="1">\n'
234+
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)
235+
236+
expected = b'</WFSLayers>\n<Layer queryable="1">\n'
237+
response = b'</WFSLayers>\n<Layer queryable="2">\n'
238+
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)
239+
240+
expected = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="1">\n'
241+
response = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name">\n'
242+
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)
243+
244+
expected = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="1">\n'
245+
response = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="0">\n'
246+
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)
247+
248+
# test valid assertion
249+
expected = b'</WFSLayers>\n<Layer queryable="1">\n'
250+
response = b'</WFSLayers>\n<Layer queryable="1">\n'
251+
self.assertFalse(engine.assertXMLEqual(response, expected))
252+
253+
expected = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="1">\n'
254+
response = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="1">\n'
255+
self.assertFalse(engine.assertXMLEqual(response, expected))
256+
257+
218258
class TestQgsServer(QgsServerTestBase):
219259

220260
"""Tests container"""

tests/src/python/test_qgsserver_wms.py

+12-6
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,16 @@ def wms_request_compare(self, request, extra=None, reference_file=None):
6464

6565
self.assertXMLEqual(response, expected, msg="request %s failed.\nQuery: %s\nExpected file: %s\nResponse:\n%s" % (query_string, request, reference_path, response.decode('utf-8')))
6666

67-
@unittest.skipIf(os.environ.get('TRAVIS', '') == 'true', 'Test is flaky on Travis environment')
68-
def test_project_wms(self):
69-
"""Test some WMS request"""
70-
for request in ('GetCapabilities', 'GetProjectSettings', 'GetContext'):
71-
self.wms_request_compare(request)
67+
def test_getcapabilities(self):
68+
self.wms_request_compare('GetCapabilities')
69+
70+
def test_getprojectsettings(self):
71+
self.wms_request_compare('GetProjectSettings')
7272

73+
def test_getcontext(self):
74+
self.wms_request_compare('GetContext')
75+
76+
def test_getfeatureinfo(self):
7377
# Test getfeatureinfo response xml
7478
self.wms_request_compare('GetFeatureInfo',
7579
'&layers=testlayer%20%C3%A8%C3%A9&styles=&' +
@@ -174,11 +178,14 @@ def test_project_wms(self):
174178
'FEATURE_COUNT=10&FILTER_GEOM=POLYGON((8.2035381 44.901459,8.2035562 44.901459,8.2035562 44.901418,8.2035381 44.901418,8.2035381 44.901459))',
175179
'wms_getfeatureinfo_invalid_query_layers')
176180

181+
def test_describelayer(self):
177182
# Test DescribeLayer
178183
self.wms_request_compare('DescribeLayer',
179184
'&layers=testlayer%20%C3%A8%C3%A9&' +
180185
'SLD_VERSION=1.1.0',
181186
'describelayer')
187+
188+
def test_getstyles(self):
182189
# Test GetStyles
183190
self.wms_request_compare('GetStyles',
184191
'&layers=testlayer%20%C3%A8%C3%A9&',
@@ -1279,7 +1286,6 @@ def test_wms_getprint_legend(self):
12791286
r, h = self._result(self._execute_request(qs))
12801287
self._img_diff_error(r, h, "WMS_GetPrint_Legend")
12811288

1282-
@unittest.skip('Randomly failing to draw the map layer')
12831289
def test_wms_getprint_srs(self):
12841290
qs = "?" + "&".join(["%s=%s" % i for i in list({
12851291
"MAP": urllib.parse.quote(self.projectPath),

0 commit comments

Comments
 (0)