Skip to content

Commit 9d9f7c1

Browse files
committed
[unit tests] Fix blend modes test
* Switched to QgsMultiRenderChecker and added control images for precise * Add a minimal color tolerance for slight render inconsistencies
1 parent 9ae9de3 commit 9d9f7c1

File tree

13 files changed

+14
-8
lines changed

13 files changed

+14
-8
lines changed

tests/src/core/testqgsblendmodes.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include <qgsmultibandcolorrenderer.h>
3131
#include <qgsrasterlayer.h>
3232
//qgis test includes
33-
#include "qgsrenderchecker.h"
33+
#include "qgsmultirenderchecker.h"
3434

3535
/** \ingroup UnitTests
3636
* This is a unit test for layer blend modes
@@ -214,10 +214,11 @@ bool TestQgsBlendModes::imageCheck( QString theTestType )
214214
{
215215
//use the QgsRenderChecker test utility class to
216216
//ensure the rendered output matches our control image
217-
QgsRenderChecker myChecker;
217+
QgsMultiRenderChecker myChecker;
218218
myChecker.setControlName( "expected_" + theTestType );
219219
myChecker.setMapSettings( mMapSettings );
220-
bool myResultFlag = myChecker.runTest( theTestType, 1500 );
220+
myChecker.setColorTolerance( 1 );
221+
bool myResultFlag = myChecker.runTest( theTestType );
221222
mReport += myChecker.report();
222223
return myResultFlag;
223224
}

tests/src/python/test_qgsblendmodes.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
QgsMapLayerRegistry,
3535
QgsMapRenderer,
3636
QgsCoordinateReferenceSystem,
37-
QgsRenderChecker,
37+
QgsMultiRenderChecker,
3838
QgsRasterLayer,
3939
QgsRasterDataProvider,
4040
QgsMultiBandColorRenderer,
@@ -112,9 +112,10 @@ def testVectorBlending(self):
112112
self.mLineLayer.setBlendMode(QPainter.CompositionMode_Difference)
113113
self.mPolygonLayer.setBlendMode(QPainter.CompositionMode_Difference)
114114

115-
checker = QgsRenderChecker()
115+
checker = QgsMultiRenderChecker()
116116
checker.setControlName("expected_vector_blendmodes")
117117
checker.setMapSettings(self.mapSettings)
118+
checker.setColorTolerance( 1 )
118119

119120
myResult = checker.runTest("vector_blendmodes", 1500);
120121
myMessage = ('vector blending failed')
@@ -137,9 +138,10 @@ def testVectorFeatureBlending(self):
137138
#Set feature blending for line layer
138139
self.mLineLayer.setFeatureBlendMode(QPainter.CompositionMode_Plus)
139140

140-
checker = QgsRenderChecker()
141+
checker = QgsMultiRenderChecker()
141142
checker.setControlName("expected_vector_featureblendmodes")
142143
checker.setMapSettings(self.mapSettings)
144+
checker.setColorTolerance( 1 )
143145

144146
myResult = checker.runTest("vector_featureblendmodes", 1500);
145147
myMessage = ('vector feature blending failed')
@@ -161,9 +163,10 @@ def testVectorLayerTransparency(self):
161163
#Set feature blending for line layer
162164
self.mLineLayer.setLayerTransparency( 50 )
163165

164-
checker = QgsRenderChecker()
166+
checker = QgsMultiRenderChecker()
165167
checker.setControlName("expected_vector_layertransparency")
166168
checker.setMapSettings(self.mapSettings)
169+
checker.setColorTolerance( 1 )
167170

168171
myResult = checker.runTest("vector_layertransparency", 1500);
169172
myMessage = ('vector layer transparency failed')
@@ -180,9 +183,11 @@ def testRasterBlending(self):
180183

181184
#Set blending mode for top layer
182185
self.mRasterLayer1.setBlendMode(QPainter.CompositionMode_Plus)
183-
checker = QgsRenderChecker()
186+
checker = QgsMultiRenderChecker()
184187
checker.setControlName("expected_raster_blendmodes")
185188
checker.setMapSettings(self.mapSettings)
189+
checker.setColorTolerance( 1 )
190+
checker.setColorTolerance( 1 )
186191

187192
myResult = checker.runTest("raster_blendmodes", 1500);
188193
myMessage = ('raster blending failed')

0 commit comments

Comments
 (0)