Skip to content

Commit 675da0c

Browse files
committed
Fix PyQgsServerAccessControl on Ubuntu
Add size tolerance to legend images, add masks for legend images
1 parent f145843 commit 675da0c

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

tests/src/python/test_qgsserver_accesscontrol.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from osgeo.gdalconst import GA_ReadOnly
2323
from qgis.server import QgsServer, QgsAccessControlFilter
2424
from qgis.core import QgsRenderChecker
25+
from PyQt4.QtCore import QSize
2526
import tempfile
2627

2728

@@ -238,10 +239,10 @@ def test_wms_getlegendgraphic_hello(self):
238239
}.items()])
239240

240241
response, headers = self._get_fullaccess(query_string)
241-
self._img_diff_error(response, headers, "WMS_GetLegendGraphic_Hello", 250)
242+
self._img_diff_error(response, headers, "WMS_GetLegendGraphic_Hello", 250, QSize(10, 10))
242243

243244
response, headers = self._get_restricted(query_string)
244-
self._img_diff_error(response, headers, "WMS_GetLegendGraphic_Hello", 250)
245+
self._img_diff_error(response, headers, "WMS_GetLegendGraphic_Hello", 250, QSize(10, 10))
245246

246247
def test_wms_getlegendgraphic_country(self):
247248
query_string = "&".join(["%s=%s" % i for i in {
@@ -253,7 +254,7 @@ def test_wms_getlegendgraphic_country(self):
253254
}.items()])
254255

255256
response, headers = self._get_fullaccess(query_string)
256-
self._img_diff_error(response, headers, "WMS_GetLegendGraphic_Country", 250)
257+
self._img_diff_error(response, headers, "WMS_GetLegendGraphic_Country", 250, QSize(10, 10))
257258

258259
response, headers = self._get_restricted(query_string)
259260
self.assertEquals(
@@ -990,7 +991,7 @@ def _post_restricted(self, data, query_string=None):
990991
del environ["REQUEST_BODY"]
991992
return result
992993

993-
def _img_diff(self, image, control_image, max_diff):
994+
def _img_diff(self, image, control_image, max_diff, max_size_diff=QSize()):
994995
temp_image = path.join(tempfile.gettempdir(), "%s_result.png" % control_image)
995996
with open(temp_image, "w") as f:
996997
f.write(image)
@@ -999,13 +1000,15 @@ def _img_diff(self, image, control_image, max_diff):
9991000
control.setControlPathPrefix("qgis_server_accesscontrol")
10001001
control.setControlName(control_image)
10011002
control.setRenderedImage(temp_image)
1003+
if max_size_diff.isValid():
1004+
control.setSizeTolerance(max_size_diff.width(), max_size_diff.height())
10021005
return control.compareImages(control_image), control.report()
10031006

1004-
def _img_diff_error(self, response, headers, image, max_diff=10):
1007+
def _img_diff_error(self, response, headers, image, max_diff=10, max_size_diff=QSize()):
10051008
self.assertEquals(
10061009
headers.get("Content-Type"), "image/png",
10071010
"Content type is wrong: %s" % headers.get("Content-Type"))
1008-
test, report = self._img_diff(response, image, max_diff)
1011+
test, report = self._img_diff(response, image, max_diff, max_size_diff)
10091012

10101013
result_img = check_output(["base64", path.join(tempfile.gettempdir(), image + "_result.png")])
10111014
message = "Image is wrong\n%s\nImage:\necho '%s' | base64 -d >%s/%s_result.png" % (

0 commit comments

Comments
 (0)