Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Move layout checking to base class
  • Loading branch information
nyalldawson committed Apr 26, 2023
1 parent e2ad92e commit 3492ddb
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 13 deletions.
28 changes: 24 additions & 4 deletions python/testing/__init__.py
Expand Up @@ -35,7 +35,8 @@
QDateTime,
QDate,
QDir,
QUrl
QUrl,
QSize
)
from qgis.PyQt.QtGui import (
QImage,
Expand All @@ -49,8 +50,10 @@
QgsVectorLayer,
QgsRenderChecker,
QgsMultiRenderChecker,
QgsMapSettings
QgsMapSettings,
QgsLayout
)
from qgslayoutchecker import QgsLayoutChecker

import unittest

Expand Down Expand Up @@ -113,7 +116,7 @@ def image_check(cls,
image: QImage,
control_name=None,
color_tolerance: int = 2,
allowed_mismatch: int = 20):
allowed_mismatch: int = 20) -> bool:
temp_dir = QDir.tempPath() + '/'
file_name = temp_dir + name + ".png"
image.save(file_name, "PNG")
Expand All @@ -136,7 +139,7 @@ def render_map_settings_check(cls,
reference_image: str,
map_settings: QgsMapSettings,
color_tolerance: Optional[int] = None,
allowed_mismatch: Optional[int] = None):
allowed_mismatch: Optional[int] = None) -> bool:
checker = QgsMultiRenderChecker()
checker.setMapSettings(map_settings)

Expand All @@ -152,6 +155,23 @@ def render_map_settings_check(cls,

return result

@classmethod
def render_layout_check(cls,
name: str,
layout: QgsLayout,
size: QSize,
dpi: Optional[float] = 192) -> bool:
checker = QgsLayoutChecker(name, layout)
checker.dots_per_meter = dpi / 25.4 * 1000
checker.size = size
if cls.control_path_prefix():
checker.setControlPathPrefix(cls.control_path_prefix())
result, message = checker.testLayout()
if not result:
cls.report += "<h2>Render {}</h2>\n".format(name)
cls.report += checker.report()
return result

def assertLayersEqual(self, layer_expected, layer_result, **kwargs):
"""
:param layer_expected: The first layer to compare
Expand Down
15 changes: 6 additions & 9 deletions tests/src/python/test_qgsannotation.py
Expand Up @@ -36,7 +36,6 @@
from qgis.gui import QgsFormAnnotation
from qgis.testing import start_app, unittest

from qgslayoutchecker import QgsLayoutChecker
from utilities import unitTestDataPath

start_app()
Expand Down Expand Up @@ -307,14 +306,12 @@ def renderAnnotationInLayout(self, test_name, annotation):
annotation.setHasFixedMapPosition(True)
pr.annotationManager().addAnnotation(annotation)

checker = QgsLayoutChecker(
test_name, l)
checker.dots_per_meter = 2 * 96 / 25.4 * 1000
checker.size = QSize(1122 * 2, 794 * 2)
checker.setControlPathPrefix("annotations")
result, message = checker.testLayout()
self.report += checker.report()
return result
return self.render_layout_check(
test_name,
layout=l,
size=QSize(1122 * 2, 794 * 2),
dpi=192
)


if __name__ == '__main__':
Expand Down

0 comments on commit 3492ddb

Please sign in to comment.