Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add test
  • Loading branch information
YoannQDQ authored and nyalldawson committed Apr 24, 2023
1 parent 8e5cb7d commit a2b83e4
Showing 1 changed file with 45 additions and 3 deletions.
48 changes: 45 additions & 3 deletions tests/src/python/test_qgsmapcanvas.py
Expand Up @@ -12,7 +12,7 @@
import time

import qgis # NOQA
from qgis.PyQt.QtCore import QDate, QDateTime, QDir, QTime
from qgis.PyQt.QtCore import QDate, QDateTime, QDir, QTime, Qt
from qgis.PyQt.QtXml import QDomDocument
from qgis.core import (
QgsAnnotationLayer,
Expand All @@ -36,9 +36,9 @@
QgsSingleSymbolRenderer,
QgsTemporalController,
QgsTemporalNavigationObject,
QgsVectorLayer,
QgsVectorLayer
)
from qgis.gui import QgsMapCanvas
from qgis.gui import QgsMapCanvas, QgsMapToolPan, QgsMapToolZoom, QgsMapToolEmitPoint
from qgis.testing import start_app, unittest

app = start_app()
Expand Down Expand Up @@ -794,6 +794,48 @@ def on_extent_changed():

self.assertEqual(TestQgsMapCanvas.new_crs, QgsCoordinateReferenceSystem('EPSG:3857'))

def test_set_map_tool(self):

canvas = QgsMapCanvas()
moveTool = QgsMapToolPan(canvas)
zoomTool = QgsMapToolZoom(canvas, True)
emitTool = QgsMapToolEmitPoint(canvas)

counter = {}

def increment(tool, section):
counter[tool][section] += 1

# Keep track of how many times each tool is activated, deactivated, and reactivated
for tool in [moveTool, zoomTool, emitTool]:
counter[tool] = {"activated": 0, "deactivated": 0, "reactivated": 0}
tool.activated.connect(lambda tool=tool: increment(tool, "activated"), Qt.DirectConnection)
tool.deactivated.connect(lambda tool=tool: increment(tool, "deactivated"), Qt.DirectConnection)
tool.reactivated.connect(lambda tool=tool: increment(tool, "reactivated"), Qt.DirectConnection)

canvas.setMapTool(moveTool)
canvas.setMapTool(zoomTool)
canvas.setMapTool(zoomTool)
canvas.setMapTool(emitTool)

# Check that the correct number of activations and deactivations occurred
self.assertEqual(counter[moveTool]["activated"], 1)
self.assertEqual(counter[moveTool]["deactivated"], 1)
self.assertEqual(counter[moveTool]["reactivated"], 0)

self.assertEqual(counter[zoomTool]["activated"], 1)
self.assertEqual(counter[zoomTool]["deactivated"], 1)
self.assertEqual(counter[zoomTool]["reactivated"], 1)

self.assertEqual(counter[emitTool]["activated"], 1)
self.assertEqual(counter[emitTool]["deactivated"], 0)
self.assertEqual(counter[emitTool]["reactivated"], 0)

canvas.setMapTool(emitTool)
self.assertEqual(counter[emitTool]["activated"], 1)
self.assertEqual(counter[emitTool]["deactivated"], 0)
self.assertEqual(counter[emitTool]["reactivated"], 1)


if __name__ == '__main__':
unittest.main()

0 comments on commit a2b83e4

Please sign in to comment.