Test improvements
- Use standard test font, larger font size to minimize cross platform rendering differences - Create a local test report for debugging
@ -28,7 +28,7 @@ import qgis # NOQA
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from qgis.PyQt.QtGui import QColor
|
from qgis.PyQt.QtGui import QColor
|
||||||
from qgis.PyQt.QtCore import QSize, QThreadPool
|
from qgis.PyQt.QtCore import QSize, QThreadPool, QDir
|
||||||
from qgis.PyQt.QtXml import QDomDocument
|
from qgis.PyQt.QtXml import QDomDocument
|
||||||
|
|
||||||
from qgis.core import (QgsVectorLayer,
|
from qgis.core import (QgsVectorLayer,
|
||||||
@ -60,6 +60,14 @@ TEST_DATA_DIR = unitTestDataPath()
|
|||||||
|
|
||||||
class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.report = "<h1>Python QgsPointDisplacementRenderer Tests</h1>\n"
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
report_file_path = "%s/qgistest.html" % QDir.tempPath()
|
||||||
|
with open(report_file_path, 'a') as report_file:
|
||||||
|
report_file.write(self.report)
|
||||||
|
|
||||||
def _setUp(self):
|
def _setUp(self):
|
||||||
myShpFile = os.path.join(TEST_DATA_DIR, 'points.shp')
|
myShpFile = os.path.join(TEST_DATA_DIR, 'points.shp')
|
||||||
layer = QgsVectorLayer(myShpFile, 'Points', 'ogr')
|
layer = QgsVectorLayer(myShpFile, 'Points', 'ogr')
|
||||||
@ -200,7 +208,9 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_no_cluster')
|
renderchecker.setControlName('expected_displacement_no_cluster')
|
||||||
self.assertTrue(renderchecker.runTest('displacement_no_cluster'))
|
res = renderchecker.runTest('displacement_no_cluster')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testRenderWithin(self):
|
def testRenderWithin(self):
|
||||||
@ -210,7 +220,9 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster')
|
renderchecker.setControlName('expected_displacement_cluster')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster'))
|
res = renderchecker.runTest('expected_displacement_cluster')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testRenderVariables(self):
|
def testRenderVariables(self):
|
||||||
@ -229,6 +241,7 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_variables')
|
renderchecker.setControlName('expected_displacement_variables')
|
||||||
result = renderchecker.runTest('expected_displacement_variables')
|
result = renderchecker.runTest('expected_displacement_variables')
|
||||||
|
self.report += renderchecker.report()
|
||||||
layer.renderer().setCenterSymbol(old_marker)
|
layer.renderer().setCenterSymbol(old_marker)
|
||||||
self.assertTrue(result)
|
self.assertTrue(result)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
@ -241,7 +254,9 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_grid')
|
renderchecker.setControlName('expected_displacement_grid')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_grid'))
|
res = renderchecker.runTest('expected_displacement_grid')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testRenderGridAdjust(self):
|
def testRenderGridAdjust(self):
|
||||||
@ -254,7 +269,9 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_adjust_grid')
|
renderchecker.setControlName('expected_displacement_adjust_grid')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_adjust_grid'))
|
res = renderchecker.runTest('expected_displacement_adjust_grid')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testClusterRingLabels(self):
|
def testClusterRingLabels(self):
|
||||||
@ -262,11 +279,15 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
layer.renderer().setTolerance(10)
|
layer.renderer().setTolerance(10)
|
||||||
layer.renderer().setLabelAttributeName('Class')
|
layer.renderer().setLabelAttributeName('Class')
|
||||||
layer.renderer().setLabelDistanceFactor(0.35)
|
layer.renderer().setLabelDistanceFactor(0.35)
|
||||||
|
f = QgsFontUtils.getStandardTestFont('Bold', 14)
|
||||||
|
layer.renderer().setLabelFont(f)
|
||||||
renderchecker = QgsMultiRenderChecker()
|
renderchecker = QgsMultiRenderChecker()
|
||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster_ring_labels')
|
renderchecker.setControlName('expected_displacement_cluster_ring_labels')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_ring_labels'))
|
res = renderchecker.runTest('expected_displacement_cluster_ring_labels')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testClusterGridLabels(self):
|
def testClusterGridLabels(self):
|
||||||
@ -274,12 +295,16 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
layer.renderer().setTolerance(10)
|
layer.renderer().setTolerance(10)
|
||||||
layer.renderer().setLabelAttributeName('Class')
|
layer.renderer().setLabelAttributeName('Class')
|
||||||
layer.renderer().setLabelDistanceFactor(0.35)
|
layer.renderer().setLabelDistanceFactor(0.35)
|
||||||
|
f = QgsFontUtils.getStandardTestFont('Bold', 14)
|
||||||
|
layer.renderer().setLabelFont(f)
|
||||||
layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid)
|
layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid)
|
||||||
renderchecker = QgsMultiRenderChecker()
|
renderchecker = QgsMultiRenderChecker()
|
||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster_grid_labels')
|
renderchecker.setControlName('expected_displacement_cluster_grid_labels')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_grid_labels'))
|
res = renderchecker.runTest('expected_displacement_cluster_grid_labels')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testClusterConcentricLabels(self):
|
def testClusterConcentricLabels(self):
|
||||||
@ -287,12 +312,16 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
layer.renderer().setTolerance(10)
|
layer.renderer().setTolerance(10)
|
||||||
layer.renderer().setLabelAttributeName('Class')
|
layer.renderer().setLabelAttributeName('Class')
|
||||||
layer.renderer().setLabelDistanceFactor(0.35)
|
layer.renderer().setLabelDistanceFactor(0.35)
|
||||||
|
f = QgsFontUtils.getStandardTestFont('Bold', 14)
|
||||||
|
layer.renderer().setLabelFont(f)
|
||||||
layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
|
layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
|
||||||
renderchecker = QgsMultiRenderChecker()
|
renderchecker = QgsMultiRenderChecker()
|
||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster_concentric_labels')
|
renderchecker.setControlName('expected_displacement_cluster_concentric_labels')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_concentric_labels'))
|
res = renderchecker.runTest('expected_displacement_cluster_concentric_labels')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testClusterRingLabelsDifferentSizes(self):
|
def testClusterRingLabelsDifferentSizes(self):
|
||||||
@ -301,11 +330,15 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
layer.renderer().setTolerance(10)
|
layer.renderer().setTolerance(10)
|
||||||
layer.renderer().setLabelAttributeName('Class')
|
layer.renderer().setLabelAttributeName('Class')
|
||||||
layer.renderer().setLabelDistanceFactor(0.35)
|
layer.renderer().setLabelDistanceFactor(0.35)
|
||||||
|
f = QgsFontUtils.getStandardTestFont('Bold', 14)
|
||||||
|
layer.renderer().setLabelFont(f)
|
||||||
renderchecker = QgsMultiRenderChecker()
|
renderchecker = QgsMultiRenderChecker()
|
||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster_ring_labels_diff_size')
|
renderchecker.setControlName('expected_displacement_cluster_ring_labels_diff_size')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_ring_labels_diff_size'))
|
res = renderchecker.runTest('expected_displacement_cluster_ring_labels_diff_size')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testClusterGridLabelsDifferentSizes(self):
|
def testClusterGridLabelsDifferentSizes(self):
|
||||||
@ -314,12 +347,16 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
layer.renderer().setTolerance(10)
|
layer.renderer().setTolerance(10)
|
||||||
layer.renderer().setLabelAttributeName('Class')
|
layer.renderer().setLabelAttributeName('Class')
|
||||||
layer.renderer().setLabelDistanceFactor(0.35)
|
layer.renderer().setLabelDistanceFactor(0.35)
|
||||||
|
f = QgsFontUtils.getStandardTestFont('Bold', 14)
|
||||||
|
layer.renderer().setLabelFont(f)
|
||||||
layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid)
|
layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid)
|
||||||
renderchecker = QgsMultiRenderChecker()
|
renderchecker = QgsMultiRenderChecker()
|
||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster_grid_labels_diff_size')
|
renderchecker.setControlName('expected_displacement_cluster_grid_labels_diff_size')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_grid_labels_diff_size'))
|
res = renderchecker.runTest('expected_displacement_cluster_grid_labels_diff_size')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testClusterConcentricLabelsDifferentSizes(self):
|
def testClusterConcentricLabelsDifferentSizes(self):
|
||||||
@ -328,12 +365,16 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
layer.renderer().setTolerance(10)
|
layer.renderer().setTolerance(10)
|
||||||
layer.renderer().setLabelAttributeName('Class')
|
layer.renderer().setLabelAttributeName('Class')
|
||||||
layer.renderer().setLabelDistanceFactor(0.35)
|
layer.renderer().setLabelDistanceFactor(0.35)
|
||||||
|
f = QgsFontUtils.getStandardTestFont('Bold', 14)
|
||||||
|
layer.renderer().setLabelFont(f)
|
||||||
layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
|
layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
|
||||||
renderchecker = QgsMultiRenderChecker()
|
renderchecker = QgsMultiRenderChecker()
|
||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster_concentric_labels_diff_size')
|
renderchecker.setControlName('expected_displacement_cluster_concentric_labels_diff_size')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_concentric_labels_diff_size'))
|
res = renderchecker.runTest('expected_displacement_cluster_concentric_labels_diff_size')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testClusterRingLabelsDifferentSizesFarther(self):
|
def testClusterRingLabelsDifferentSizesFarther(self):
|
||||||
@ -342,11 +383,15 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
layer.renderer().setTolerance(10)
|
layer.renderer().setTolerance(10)
|
||||||
layer.renderer().setLabelAttributeName('Class')
|
layer.renderer().setLabelAttributeName('Class')
|
||||||
layer.renderer().setLabelDistanceFactor(1)
|
layer.renderer().setLabelDistanceFactor(1)
|
||||||
|
f = QgsFontUtils.getStandardTestFont('Bold', 14)
|
||||||
|
layer.renderer().setLabelFont(f)
|
||||||
renderchecker = QgsMultiRenderChecker()
|
renderchecker = QgsMultiRenderChecker()
|
||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster_ring_labels_diff_size_farther')
|
renderchecker.setControlName('expected_displacement_cluster_ring_labels_diff_size_farther')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_ring_labels_diff_size_farther'))
|
res = renderchecker.runTest('expected_displacement_cluster_ring_labels_diff_size_farther')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testClusterGridLabelsDifferentSizesFarther(self):
|
def testClusterGridLabelsDifferentSizesFarther(self):
|
||||||
@ -356,11 +401,15 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
layer.renderer().setLabelAttributeName('Class')
|
layer.renderer().setLabelAttributeName('Class')
|
||||||
layer.renderer().setLabelDistanceFactor(1)
|
layer.renderer().setLabelDistanceFactor(1)
|
||||||
layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid)
|
layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid)
|
||||||
|
f = QgsFontUtils.getStandardTestFont('Bold', 14)
|
||||||
|
layer.renderer().setLabelFont(f)
|
||||||
renderchecker = QgsMultiRenderChecker()
|
renderchecker = QgsMultiRenderChecker()
|
||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster_grid_labels_diff_size_farther')
|
renderchecker.setControlName('expected_displacement_cluster_grid_labels_diff_size_farther')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_grid_labels_diff_size_farther'))
|
res = renderchecker.runTest('expected_displacement_cluster_grid_labels_diff_size_farther')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
def testClusterConcentricLabelsDifferentSizesFarther(self):
|
def testClusterConcentricLabelsDifferentSizesFarther(self):
|
||||||
@ -369,12 +418,16 @@ class TestQgsPointDisplacementRenderer(unittest.TestCase):
|
|||||||
layer.renderer().setTolerance(10)
|
layer.renderer().setTolerance(10)
|
||||||
layer.renderer().setLabelAttributeName('Class')
|
layer.renderer().setLabelAttributeName('Class')
|
||||||
layer.renderer().setLabelDistanceFactor(1)
|
layer.renderer().setLabelDistanceFactor(1)
|
||||||
|
f = QgsFontUtils.getStandardTestFont('Bold', 14)
|
||||||
|
layer.renderer().setLabelFont(f)
|
||||||
layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
|
layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
|
||||||
renderchecker = QgsMultiRenderChecker()
|
renderchecker = QgsMultiRenderChecker()
|
||||||
renderchecker.setMapSettings(mapsettings)
|
renderchecker.setMapSettings(mapsettings)
|
||||||
renderchecker.setControlPathPrefix('displacement_renderer')
|
renderchecker.setControlPathPrefix('displacement_renderer')
|
||||||
renderchecker.setControlName('expected_displacement_cluster_concentric_labels_diff_size_farther')
|
renderchecker.setControlName('expected_displacement_cluster_concentric_labels_diff_size_farther')
|
||||||
self.assertTrue(renderchecker.runTest('expected_displacement_cluster_concentric_labels_diff_size_farther'))
|
res = renderchecker.runTest('expected_displacement_cluster_concentric_labels_diff_size_farther')
|
||||||
|
self.report += renderchecker.report()
|
||||||
|
self.assertTrue(res)
|
||||||
self._tearDown(layer)
|
self._tearDown(layer)
|
||||||
|
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB |
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB |
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB |
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB |
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB |
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB |
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB |
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB |
Before Width: | Height: | Size: 626 KiB After Width: | Height: | Size: 626 KiB |