22
22
from osgeo .gdalconst import GA_ReadOnly
23
23
from qgis .server import QgsServer , QgsAccessControlFilter
24
24
from qgis .core import QgsRenderChecker
25
+ from PyQt4 .QtCore import QSize
25
26
import tempfile
26
27
27
28
@@ -238,10 +239,10 @@ def test_wms_getlegendgraphic_hello(self):
238
239
}.items ()])
239
240
240
241
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 ) )
242
243
243
244
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 ) )
245
246
246
247
def test_wms_getlegendgraphic_country (self ):
247
248
query_string = "&" .join (["%s=%s" % i for i in {
@@ -253,7 +254,7 @@ def test_wms_getlegendgraphic_country(self):
253
254
}.items ()])
254
255
255
256
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 ) )
257
258
258
259
response , headers = self ._get_restricted (query_string )
259
260
self .assertEquals (
@@ -990,7 +991,7 @@ def _post_restricted(self, data, query_string=None):
990
991
del environ ["REQUEST_BODY" ]
991
992
return result
992
993
993
- def _img_diff (self , image , control_image , max_diff ):
994
+ def _img_diff (self , image , control_image , max_diff , max_size_diff = QSize () ):
994
995
temp_image = path .join (tempfile .gettempdir (), "%s_result.png" % control_image )
995
996
with open (temp_image , "w" ) as f :
996
997
f .write (image )
@@ -999,13 +1000,15 @@ def _img_diff(self, image, control_image, max_diff):
999
1000
control .setControlPathPrefix ("qgis_server_accesscontrol" )
1000
1001
control .setControlName (control_image )
1001
1002
control .setRenderedImage (temp_image )
1003
+ if max_size_diff .isValid ():
1004
+ control .setSizeTolerance (max_size_diff .width (), max_size_diff .height ())
1002
1005
return control .compareImages (control_image ), control .report ()
1003
1006
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 () ):
1005
1008
self .assertEquals (
1006
1009
headers .get ("Content-Type" ), "image/png" ,
1007
1010
"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 )
1009
1012
1010
1013
result_img = check_output (["base64" , path .join (tempfile .gettempdir (), image + "_result.png" )])
1011
1014
message = "Image is wrong\n %s\n Image:\n echo '%s' | base64 -d >%s/%s_result.png" % (
0 commit comments