Skip to content

Commit d87f75a

Browse files
committed
[processing] Unit tests for distance param widget wrapper
1 parent 91c1277 commit d87f75a

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

python/plugins/processing/tests/GuiTest.py

+38-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@
2626
__revision__ = '$Format:%H$'
2727

2828
from qgis.testing import start_app, unittest
29-
from qgis.core import QgsApplication
29+
from qgis.core import (QgsApplication,
30+
QgsCoordinateReferenceSystem,
31+
QgsVectorLayer)
3032
from qgis.analysis import QgsNativeAlgorithms
3133

3234
from processing.gui.AlgorithmDialog import AlgorithmDialog
@@ -121,6 +123,41 @@ def testMapLayer(self):
121123
def testDistance(self):
122124
self.checkConstructWrapper(QgsProcessingParameterDistance('test'), DistanceWidgetWrapper)
123125

126+
alg = QgsApplication.processingRegistry().algorithmById('native:centroids')
127+
dlg = AlgorithmDialog(alg)
128+
param = QgsProcessingParameterDistance('test')
129+
wrapper = DistanceWidgetWrapper(param, dlg)
130+
widget = wrapper.createWidget()
131+
132+
# test units
133+
widget.show()
134+
135+
# crs values
136+
widget.setUnitParameterValue('EPSG:3111')
137+
self.assertEqual(widget.label.text(), 'meters')
138+
self.assertFalse(widget.warning_label.isVisible())
139+
widget.setUnitParameterValue('EPSG:4326')
140+
self.assertEqual(widget.label.text(), 'degrees')
141+
self.assertTrue(widget.warning_label.isVisible())
142+
widget.setUnitParameterValue(QgsCoordinateReferenceSystem('EPSG:3111'))
143+
self.assertEqual(widget.label.text(), 'meters')
144+
self.assertFalse(widget.warning_label.isVisible())
145+
widget.setUnitParameterValue(QgsCoordinateReferenceSystem('EPSG:4326'))
146+
self.assertEqual(widget.label.text(), 'degrees')
147+
self.assertTrue(widget.warning_label.isVisible())
148+
149+
# layer values
150+
vl = QgsVectorLayer("Polygon?crs=epsg:3111&field=pk:int", "vl", "memory")
151+
widget.setUnitParameterValue(vl)
152+
self.assertEqual(widget.label.text(), 'meters')
153+
self.assertFalse(widget.warning_label.isVisible())
154+
vl = QgsVectorLayer("Polygon?crs=epsg:4326&field=pk:int", "vl", "memory")
155+
widget.setUnitParameterValue(vl)
156+
self.assertEqual(widget.label.text(), 'degrees')
157+
self.assertTrue(widget.warning_label.isVisible())
158+
159+
widget.deleteLater()
160+
124161
def testNumber(self):
125162
self.checkConstructWrapper(QgsProcessingParameterNumber('test'), NumberWidgetWrapper)
126163

0 commit comments

Comments
 (0)