|
26 | 26 | __revision__ = '$Format:%H$'
|
27 | 27 |
|
28 | 28 | from qgis.testing import start_app, unittest
|
29 |
| -from qgis.core import QgsApplication |
| 29 | +from qgis.core import (QgsApplication, |
| 30 | + QgsCoordinateReferenceSystem, |
| 31 | + QgsVectorLayer) |
30 | 32 | from qgis.analysis import QgsNativeAlgorithms
|
31 | 33 |
|
32 | 34 | from processing.gui.AlgorithmDialog import AlgorithmDialog
|
@@ -121,6 +123,41 @@ def testMapLayer(self):
|
121 | 123 | def testDistance(self):
|
122 | 124 | self.checkConstructWrapper(QgsProcessingParameterDistance('test'), DistanceWidgetWrapper)
|
123 | 125 |
|
| 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 | + |
124 | 161 | def testNumber(self):
|
125 | 162 | self.checkConstructWrapper(QgsProcessingParameterNumber('test'), NumberWidgetWrapper)
|
126 | 163 |
|
|
0 commit comments