2020from PyQt4 .QtGui import *
2121from qgis .core import *
2222
23- class QgsCompositionChecker (QgsRenderChecker ):
23+ class QgsCompositionChecker (QgsMultiRenderChecker ):
2424 def __init__ (self , mTestName , mComposition ):
25- self . mExpectedImageFile = ""
25+ super ( QgsCompositionChecker , self ). __init__ ()
2626 self .mComposition = mComposition
2727 self .mTestName = mTestName
28- super (QgsCompositionChecker , self ).__init__ ()
28+ self .mDotsPerMeter = 96 / 25.4 * 1000
29+ self .mSize = QSize ( 1122 , 794 )
30+ self .setColorTolerance ( 1 )
2931
3032 def testComposition (self , page = 0 , pixelDiff = 0 ):
3133 if ( self .mComposition == None ):
@@ -34,45 +36,24 @@ def testComposition(self, page=0, pixelDiff=0 ):
3436
3537 #load expected image
3638 self .setControlName ("expected_" + self .mTestName );
37- expectedImage = QImage ( self .expectedImageFile () )
3839
3940 #get width/height, create image and render the composition to it
40- width = expectedImage .width ();
41- height = expectedImage .height ();
42- outputImage = QImage ( QSize ( width , height ), QImage .Format_RGB32 )
41+ outputImage = QImage ( self .mSize , QImage .Format_RGB32 )
4342
4443 self .mComposition .setPlotStyle ( QgsComposition .Print )
45- outputImage .setDotsPerMeterX ( expectedImage . dotsPerMeterX () )
46- outputImage .setDotsPerMeterY ( expectedImage . dotsPerMeterX () )
47- self .drawBackround ( outputImage )
44+ outputImage .setDotsPerMeterX ( self . mDotsPerMeter )
45+ outputImage .setDotsPerMeterY ( self . mDotsPerMeter )
46+ QgsMultiRenderChecker .drawBackround ( outputImage )
4847 p = QPainter ( outputImage )
4948 self .mComposition .renderPage ( p , page )
5049 p .end ()
5150
5251 renderedFilePath = QDir .tempPath () + QDir .separator () + QFileInfo (self .mTestName ).baseName () + "_rendered.png"
5352 outputImage .save ( renderedFilePath , "PNG" )
5453
55- diffFilePath = QDir .tempPath () + QDir .separator () + QFileInfo (self .mTestName ).baseName () + "_result_diff.png"
56- testResult = self .compareImages ( self .mTestName , pixelDiff , renderedFilePath )
54+ self .setRenderedImage ( renderedFilePath )
5755
58- myDashMessage = (('<DartMeasurementFile name="Rendered Image '
59- '%s" type="image/png">'
60- '%s</DartMeasurementFile>'
61- '<DartMeasurementFile name="Expected Image '
62- '%s" type="image/png">'
63- '%s</DartMeasurementFile>\n '
64- '<DartMeasurementFile name="Difference Image '
65- '%s" type="image/png">'
66- '%s</DartMeasurementFile>' ) %
67- (self .mTestName , renderedFilePath , self .mTestName ,
68- self .expectedImageFile (), self .mTestName , diffFilePath )
69- )
70- qDebug ( myDashMessage )
71- if not testResult :
72- myMessage = ('Expected: %s\n Got: %s\n Difference: %s\n ' %
73- (self .expectedImageFile (), renderedFilePath , diffFilePath ))
74- else :
75- myMessage = 'Control and test images matched.'
56+ testResult = self .runTest ( self .mTestName , pixelDiff )
7657
77- return testResult , myMessage
58+ return testResult , self . report ()
7859
0 commit comments