Skip to content

Commit

Permalink
Merge pull request #5399 from pblottiere/server_flaky_tests
Browse files Browse the repository at this point in the history
[server] WIP : reactivate flaky server tests for WMS requests
  • Loading branch information
m-kuhn committed Oct 20, 2017
2 parents 8d64e2e + 3c18232 commit 13a00aa
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 6 deletions.
40 changes: 40 additions & 0 deletions tests/src/python/test_qgsserver.py
Expand Up @@ -215,6 +215,46 @@ def _execute_request(self, qs, requestMethod=QgsServerRequest.GetMethod, data=No
return b"\n".join(headers) + b"\n\n", bytes(response.body())


class TestQgsServerTestBase(unittest.TestCase):

def test_assert_xml_equal(self):
engine = QgsServerTestBase()

# test bad assertion
expected = b'</WFSLayers>\n<Layer queryable="1">\n'
response = b'<Layer>\n'
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)

expected = b'</WFSLayers>\n<Layer queryable="1">\n'
response = b'</WFSLayers>\n<Layer>\n'
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)

expected = b'</WFSLayers>\n<Layer queryable="1">\n'
response = b'</WFSLayers>\n<Layer fake="1">\n'
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)

expected = b'</WFSLayers>\n<Layer queryable="1">\n'
response = b'</WFSLayers>\n<Layer queryable="2">\n'
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)

expected = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="1">\n'
response = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name">\n'
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)

expected = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="1">\n'
response = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="0">\n'
self.assertRaises(AssertionError, engine.assertXMLEqual, response, expected)

# test valid assertion
expected = b'</WFSLayers>\n<Layer queryable="1">\n'
response = b'</WFSLayers>\n<Layer queryable="1">\n'
self.assertFalse(engine.assertXMLEqual(response, expected))

expected = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="1">\n'
response = b'<TreeName>QGIS Test Project</TreeName>\n<Layer geometryType="Point" queryable="1" displayField="name" visible="1">\n'
self.assertFalse(engine.assertXMLEqual(response, expected))


class TestQgsServer(QgsServerTestBase):

"""Tests container"""
Expand Down
18 changes: 12 additions & 6 deletions tests/src/python/test_qgsserver_wms.py
Expand Up @@ -64,12 +64,16 @@ def wms_request_compare(self, request, extra=None, reference_file=None):

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')))

@unittest.skipIf(os.environ.get('TRAVIS', '') == 'true', 'Test is flaky on Travis environment')
def test_project_wms(self):
"""Test some WMS request"""
for request in ('GetCapabilities', 'GetProjectSettings', 'GetContext'):
self.wms_request_compare(request)
def test_getcapabilities(self):
self.wms_request_compare('GetCapabilities')

def test_getprojectsettings(self):
self.wms_request_compare('GetProjectSettings')

def test_getcontext(self):
self.wms_request_compare('GetContext')

def test_getfeatureinfo(self):
# Test getfeatureinfo response xml
self.wms_request_compare('GetFeatureInfo',
'&layers=testlayer%20%C3%A8%C3%A9&styles=&' +
Expand Down Expand Up @@ -174,11 +178,14 @@ def test_project_wms(self):
'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))',
'wms_getfeatureinfo_invalid_query_layers')

def test_describelayer(self):
# Test DescribeLayer
self.wms_request_compare('DescribeLayer',
'&layers=testlayer%20%C3%A8%C3%A9&' +
'SLD_VERSION=1.1.0',
'describelayer')

def test_getstyles(self):
# Test GetStyles
self.wms_request_compare('GetStyles',
'&layers=testlayer%20%C3%A8%C3%A9&',
Expand Down Expand Up @@ -1279,7 +1286,6 @@ def test_wms_getprint_legend(self):
r, h = self._result(self._execute_request(qs))
self._img_diff_error(r, h, "WMS_GetPrint_Legend")

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

0 comments on commit 13a00aa

Please sign in to comment.