|
16 | 16 |
|
17 | 17 | from qgis.core import (QgsFeature, QgsProject, QgsRelation, QgsVectorLayer,
|
18 | 18 | QgsValueMapFieldFormatter, QgsValueRelationFieldFormatter,
|
19 |
| - QgsRelationReferenceFieldFormatter, QgsSettings) |
| 19 | + QgsRelationReferenceFieldFormatter, QgsRangeFieldFormatter, QgsSettings) |
20 | 20 |
|
21 | 21 | from qgis.testing import start_app, unittest
|
22 | 22 |
|
@@ -197,5 +197,62 @@ def test_representValue(self):
|
197 | 197 | QgsProject.instance().removeAllMapLayers()
|
198 | 198 |
|
199 | 199 |
|
| 200 | +class TestQgsRangeFieldFormatter(unittest.TestCase): |
| 201 | + |
| 202 | + def test_representValue(self): |
| 203 | + |
| 204 | + layer = QgsVectorLayer("point?field=int:integer&field=double:double", |
| 205 | + "layer", "memory") |
| 206 | + self.assertTrue(layer.isValid()) |
| 207 | + QgsProject.instance().addMapLayers([layer]) |
| 208 | + |
| 209 | + fieldFormatter = QgsRangeFieldFormatter() |
| 210 | + |
| 211 | + # Precision is ignored for integers |
| 212 | + self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, '123'), '123') |
| 213 | + self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, '123000'), '123000') |
| 214 | + self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, None), 'NULL') |
| 215 | + |
| 216 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 1}, None, None), 'NULL') |
| 217 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 1}, None, '123'), '123.0') |
| 218 | + |
| 219 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, None), 'NULL') |
| 220 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '123000'), '123000.00') |
| 221 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '0'), '0.00') |
| 222 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '123'), '123.00') |
| 223 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '0.123'), '0.12') |
| 224 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '0.127'), '0.13') |
| 225 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '0'), '0.000') |
| 226 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '0.127'), '0.127') |
| 227 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '1.27e-1'), '0.127') |
| 228 | + |
| 229 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '-123'), '-123.00') |
| 230 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '-0.123'), '-0.12') |
| 231 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '-0.127'), '-0.13') |
| 232 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '-0.127'), '-0.127') |
| 233 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '-1.27e-1'), '-0.127') |
| 234 | + |
| 235 | + QgsSettings().setValue("locale/overrideFlag", True) |
| 236 | + QgsSettings().setValue("locale/userLocale", 'it') |
| 237 | + |
| 238 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, None), 'NULL') |
| 239 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '123000'), '123000,00') |
| 240 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '0'), '0,00') |
| 241 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '123'), '123,00') |
| 242 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '0.123'), '0,12') |
| 243 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '0.127'), '0,13') |
| 244 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '0'), '0,000') |
| 245 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '0.127'), '0,127') |
| 246 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '1.27e-1'), '0,127') |
| 247 | + |
| 248 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '-123'), '-123,00') |
| 249 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '-0.123'), '-0,12') |
| 250 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '-0.127'), '-0,13') |
| 251 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '-0.127'), '-0,127') |
| 252 | + self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '-1.27e-1'), '-0,127') |
| 253 | + |
| 254 | + QgsProject.instance().removeAllMapLayers() |
| 255 | + |
| 256 | + |
200 | 257 | if __name__ == '__main__':
|
201 | 258 | unittest.main()
|
0 commit comments