Skip to content

Commit e5b8747

Browse files
committed
Test improvements
- Use standard test font, larger font size to minimize cross platform rendering differences - Create a local test report for debugging
1 parent c282e95 commit e5b8747

File tree

10 files changed

+67
-14
lines changed

10 files changed

+67
-14
lines changed

tests/src/python/test_qgspointdisplacementrenderer.py

+67-14
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import os
2929

3030
from qgis.PyQt.QtGui import QColor
31-
from qgis.PyQt.QtCore import QSize, QThreadPool
31+
from qgis.PyQt.QtCore import QSize, QThreadPool, QDir
3232
from qgis.PyQt.QtXml import QDomDocument
3333

3434
from qgis.core import (QgsVectorLayer,
@@ -60,6 +60,14 @@
6060

6161
class TestQgsPointDisplacementRenderer(unittest.TestCase):
6262

63+
def setUp(self):
64+
self.report = "<h1>Python QgsPointDisplacementRenderer Tests</h1>\n"
65+
66+
def tearDown(self):
67+
report_file_path = "%s/qgistest.html" % QDir.tempPath()
68+
with open(report_file_path, 'a') as report_file:
69+
report_file.write(self.report)
70+
6371
def _setUp(self):
6472
myShpFile = os.path.join(TEST_DATA_DIR, 'points.shp')
6573
layer = QgsVectorLayer(myShpFile, 'Points', 'ogr')
@@ -200,7 +208,9 @@ def testRenderNoCluster(self):
200208
renderchecker.setMapSettings(mapsettings)
201209
renderchecker.setControlPathPrefix('displacement_renderer')
202210
renderchecker.setControlName('expected_displacement_no_cluster')
203-
self.assertTrue(renderchecker.runTest('displacement_no_cluster'))
211+
res = renderchecker.runTest('displacement_no_cluster')
212+
self.report += renderchecker.report()
213+
self.assertTrue(res)
204214
self._tearDown(layer)
205215

206216
def testRenderWithin(self):
@@ -210,7 +220,9 @@ def testRenderWithin(self):
210220
renderchecker.setMapSettings(mapsettings)
211221
renderchecker.setControlPathPrefix('displacement_renderer')
212222
renderchecker.setControlName('expected_displacement_cluster')
213-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster'))
223+
res = renderchecker.runTest('expected_displacement_cluster')
224+
self.report += renderchecker.report()
225+
self.assertTrue(res)
214226
self._tearDown(layer)
215227

216228
def testRenderVariables(self):
@@ -229,6 +241,7 @@ def testRenderVariables(self):
229241
renderchecker.setControlPathPrefix('displacement_renderer')
230242
renderchecker.setControlName('expected_displacement_variables')
231243
result = renderchecker.runTest('expected_displacement_variables')
244+
self.report += renderchecker.report()
232245
layer.renderer().setCenterSymbol(old_marker)
233246
self.assertTrue(result)
234247
self._tearDown(layer)
@@ -241,7 +254,9 @@ def testRenderGrid(self):
241254
renderchecker.setMapSettings(mapsettings)
242255
renderchecker.setControlPathPrefix('displacement_renderer')
243256
renderchecker.setControlName('expected_displacement_grid')
244-
self.assertTrue(renderchecker.runTest('expected_displacement_grid'))
257+
res = renderchecker.runTest('expected_displacement_grid')
258+
self.report += renderchecker.report()
259+
self.assertTrue(res)
245260
self._tearDown(layer)
246261

247262
def testRenderGridAdjust(self):
@@ -254,45 +269,59 @@ def testRenderGridAdjust(self):
254269
renderchecker.setMapSettings(mapsettings)
255270
renderchecker.setControlPathPrefix('displacement_renderer')
256271
renderchecker.setControlName('expected_displacement_adjust_grid')
257-
self.assertTrue(renderchecker.runTest('expected_displacement_adjust_grid'))
272+
res = renderchecker.runTest('expected_displacement_adjust_grid')
273+
self.report += renderchecker.report()
274+
self.assertTrue(res)
258275
self._tearDown(layer)
259276

260277
def testClusterRingLabels(self):
261278
layer, renderer, mapsettings = self._setUp()
262279
layer.renderer().setTolerance(10)
263280
layer.renderer().setLabelAttributeName('Class')
264281
layer.renderer().setLabelDistanceFactor(0.35)
282+
f = QgsFontUtils.getStandardTestFont('Bold', 14)
283+
layer.renderer().setLabelFont(f)
265284
renderchecker = QgsMultiRenderChecker()
266285
renderchecker.setMapSettings(mapsettings)
267286
renderchecker.setControlPathPrefix('displacement_renderer')
268287
renderchecker.setControlName('expected_displacement_cluster_ring_labels')
269-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_ring_labels'))
288+
res = renderchecker.runTest('expected_displacement_cluster_ring_labels')
289+
self.report += renderchecker.report()
290+
self.assertTrue(res)
270291
self._tearDown(layer)
271292

272293
def testClusterGridLabels(self):
273294
layer, renderer, mapsettings = self._setUp()
274295
layer.renderer().setTolerance(10)
275296
layer.renderer().setLabelAttributeName('Class')
276297
layer.renderer().setLabelDistanceFactor(0.35)
298+
f = QgsFontUtils.getStandardTestFont('Bold', 14)
299+
layer.renderer().setLabelFont(f)
277300
layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid)
278301
renderchecker = QgsMultiRenderChecker()
279302
renderchecker.setMapSettings(mapsettings)
280303
renderchecker.setControlPathPrefix('displacement_renderer')
281304
renderchecker.setControlName('expected_displacement_cluster_grid_labels')
282-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_grid_labels'))
305+
res = renderchecker.runTest('expected_displacement_cluster_grid_labels')
306+
self.report += renderchecker.report()
307+
self.assertTrue(res)
283308
self._tearDown(layer)
284309

285310
def testClusterConcentricLabels(self):
286311
layer, renderer, mapsettings = self._setUp()
287312
layer.renderer().setTolerance(10)
288313
layer.renderer().setLabelAttributeName('Class')
289314
layer.renderer().setLabelDistanceFactor(0.35)
315+
f = QgsFontUtils.getStandardTestFont('Bold', 14)
316+
layer.renderer().setLabelFont(f)
290317
layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
291318
renderchecker = QgsMultiRenderChecker()
292319
renderchecker.setMapSettings(mapsettings)
293320
renderchecker.setControlPathPrefix('displacement_renderer')
294321
renderchecker.setControlName('expected_displacement_cluster_concentric_labels')
295-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_concentric_labels'))
322+
res = renderchecker.runTest('expected_displacement_cluster_concentric_labels')
323+
self.report += renderchecker.report()
324+
self.assertTrue(res)
296325
self._tearDown(layer)
297326

298327
def testClusterRingLabelsDifferentSizes(self):
@@ -301,11 +330,15 @@ def testClusterRingLabelsDifferentSizes(self):
301330
layer.renderer().setTolerance(10)
302331
layer.renderer().setLabelAttributeName('Class')
303332
layer.renderer().setLabelDistanceFactor(0.35)
333+
f = QgsFontUtils.getStandardTestFont('Bold', 14)
334+
layer.renderer().setLabelFont(f)
304335
renderchecker = QgsMultiRenderChecker()
305336
renderchecker.setMapSettings(mapsettings)
306337
renderchecker.setControlPathPrefix('displacement_renderer')
307338
renderchecker.setControlName('expected_displacement_cluster_ring_labels_diff_size')
308-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_ring_labels_diff_size'))
339+
res = renderchecker.runTest('expected_displacement_cluster_ring_labels_diff_size')
340+
self.report += renderchecker.report()
341+
self.assertTrue(res)
309342
self._tearDown(layer)
310343

311344
def testClusterGridLabelsDifferentSizes(self):
@@ -314,12 +347,16 @@ def testClusterGridLabelsDifferentSizes(self):
314347
layer.renderer().setTolerance(10)
315348
layer.renderer().setLabelAttributeName('Class')
316349
layer.renderer().setLabelDistanceFactor(0.35)
350+
f = QgsFontUtils.getStandardTestFont('Bold', 14)
351+
layer.renderer().setLabelFont(f)
317352
layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid)
318353
renderchecker = QgsMultiRenderChecker()
319354
renderchecker.setMapSettings(mapsettings)
320355
renderchecker.setControlPathPrefix('displacement_renderer')
321356
renderchecker.setControlName('expected_displacement_cluster_grid_labels_diff_size')
322-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_grid_labels_diff_size'))
357+
res = renderchecker.runTest('expected_displacement_cluster_grid_labels_diff_size')
358+
self.report += renderchecker.report()
359+
self.assertTrue(res)
323360
self._tearDown(layer)
324361

325362
def testClusterConcentricLabelsDifferentSizes(self):
@@ -328,12 +365,16 @@ def testClusterConcentricLabelsDifferentSizes(self):
328365
layer.renderer().setTolerance(10)
329366
layer.renderer().setLabelAttributeName('Class')
330367
layer.renderer().setLabelDistanceFactor(0.35)
368+
f = QgsFontUtils.getStandardTestFont('Bold', 14)
369+
layer.renderer().setLabelFont(f)
331370
layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
332371
renderchecker = QgsMultiRenderChecker()
333372
renderchecker.setMapSettings(mapsettings)
334373
renderchecker.setControlPathPrefix('displacement_renderer')
335374
renderchecker.setControlName('expected_displacement_cluster_concentric_labels_diff_size')
336-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_concentric_labels_diff_size'))
375+
res = renderchecker.runTest('expected_displacement_cluster_concentric_labels_diff_size')
376+
self.report += renderchecker.report()
377+
self.assertTrue(res)
337378
self._tearDown(layer)
338379

339380
def testClusterRingLabelsDifferentSizesFarther(self):
@@ -342,11 +383,15 @@ def testClusterRingLabelsDifferentSizesFarther(self):
342383
layer.renderer().setTolerance(10)
343384
layer.renderer().setLabelAttributeName('Class')
344385
layer.renderer().setLabelDistanceFactor(1)
386+
f = QgsFontUtils.getStandardTestFont('Bold', 14)
387+
layer.renderer().setLabelFont(f)
345388
renderchecker = QgsMultiRenderChecker()
346389
renderchecker.setMapSettings(mapsettings)
347390
renderchecker.setControlPathPrefix('displacement_renderer')
348391
renderchecker.setControlName('expected_displacement_cluster_ring_labels_diff_size_farther')
349-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_ring_labels_diff_size_farther'))
392+
res = renderchecker.runTest('expected_displacement_cluster_ring_labels_diff_size_farther')
393+
self.report += renderchecker.report()
394+
self.assertTrue(res)
350395
self._tearDown(layer)
351396

352397
def testClusterGridLabelsDifferentSizesFarther(self):
@@ -356,11 +401,15 @@ def testClusterGridLabelsDifferentSizesFarther(self):
356401
layer.renderer().setLabelAttributeName('Class')
357402
layer.renderer().setLabelDistanceFactor(1)
358403
layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid)
404+
f = QgsFontUtils.getStandardTestFont('Bold', 14)
405+
layer.renderer().setLabelFont(f)
359406
renderchecker = QgsMultiRenderChecker()
360407
renderchecker.setMapSettings(mapsettings)
361408
renderchecker.setControlPathPrefix('displacement_renderer')
362409
renderchecker.setControlName('expected_displacement_cluster_grid_labels_diff_size_farther')
363-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_grid_labels_diff_size_farther'))
410+
res = renderchecker.runTest('expected_displacement_cluster_grid_labels_diff_size_farther')
411+
self.report += renderchecker.report()
412+
self.assertTrue(res)
364413
self._tearDown(layer)
365414

366415
def testClusterConcentricLabelsDifferentSizesFarther(self):
@@ -369,12 +418,16 @@ def testClusterConcentricLabelsDifferentSizesFarther(self):
369418
layer.renderer().setTolerance(10)
370419
layer.renderer().setLabelAttributeName('Class')
371420
layer.renderer().setLabelDistanceFactor(1)
421+
f = QgsFontUtils.getStandardTestFont('Bold', 14)
422+
layer.renderer().setLabelFont(f)
372423
layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
373424
renderchecker = QgsMultiRenderChecker()
374425
renderchecker.setMapSettings(mapsettings)
375426
renderchecker.setControlPathPrefix('displacement_renderer')
376427
renderchecker.setControlName('expected_displacement_cluster_concentric_labels_diff_size_farther')
377-
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_concentric_labels_diff_size_farther'))
428+
res = renderchecker.runTest('expected_displacement_cluster_concentric_labels_diff_size_farther')
429+
self.report += renderchecker.report()
430+
self.assertTrue(res)
378431
self._tearDown(layer)
379432

380433

0 commit comments

Comments
 (0)