Skip to content

Commit 8c74dde

Browse files
committedJun 9, 2018
Added tests for locales other than english
1 parent e7df793 commit 8c74dde

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed
 

‎tests/src/python/test_qgsfieldformatters.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -266,13 +266,13 @@ def setUpClass(cls):
266266
QCoreApplication.setOrganizationDomain("QGIS_TestPyQgsColorScheme.com")
267267
QCoreApplication.setApplicationName("QGIS_TestPyQgsColorScheme")
268268
QgsSettings().clear()
269-
QLocale.setDefault(QLocale.c())
269+
QLocale.setDefault(QLocale(QLocale.English))
270270
start_app()
271271

272272
@classmethod
273273
def tearDownClass(cls):
274274
"""Reset locale"""
275-
QLocale.setDefault(QLocale.c())
275+
QLocale.setDefault(QLocale(QLocale.English))
276276

277277
def test_representValue(self):
278278

@@ -285,19 +285,19 @@ def test_representValue(self):
285285

286286
# Precision is ignored for integers and longlongs
287287
self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, '123'), '123')
288-
self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, '123000'), '123000')
289-
self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, '9999999'), '9999999') # no scientific notation for integers!
288+
self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, '123000'), '123,000')
289+
self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, '9999999'), '9,999,999') # no scientific notation for integers!
290290
self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, None), 'NULL')
291291
self.assertEqual(fieldFormatter.representValue(layer, 2, {'Precision': 1}, None, '123'), '123')
292-
self.assertEqual(fieldFormatter.representValue(layer, 2, {'Precision': 1}, None, '123000'), '123000')
293-
self.assertEqual(fieldFormatter.representValue(layer, 2, {'Precision': 1}, None, '9999999'), '9999999') # no scientific notation for long longs!
292+
self.assertEqual(fieldFormatter.representValue(layer, 2, {'Precision': 1}, None, '123000'), '123,000')
293+
self.assertEqual(fieldFormatter.representValue(layer, 2, {'Precision': 1}, None, '9999999'), '9,999,999') # no scientific notation for long longs!
294294
self.assertEqual(fieldFormatter.representValue(layer, 2, {'Precision': 1}, None, None), 'NULL')
295295

296296
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 1}, None, None), 'NULL')
297297
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 1}, None, '123'), '123.0')
298298

299299
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, None), 'NULL')
300-
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '123000'), '123000.00')
300+
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '123000'), '123,000.00')
301301
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '0'), '0.00')
302302
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '123'), '123.00')
303303
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '0.123'), '0.12')
@@ -312,6 +312,7 @@ def test_representValue(self):
312312
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '-0.127'), '-0.127')
313313
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '-1.27e-1'), '-0.127')
314314

315+
# Check with Italian locale
315316
QLocale.setDefault(QLocale('it'))
316317

317318
self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, '9999999'),
@@ -337,6 +338,19 @@ def test_representValue(self):
337338
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '-0.127'), '-0,127')
338339
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 3}, None, '-1.27e-1'), '-0,127')
339340

341+
# Check with custom locale without thousand separator
342+
343+
custom = QLocale('en')
344+
custom.setNumberOptions(QLocale.OmitGroupSeparator)
345+
QLocale.setDefault(custom)
346+
347+
self.assertEqual(fieldFormatter.representValue(layer, 0, {'Precision': 1}, None, '9999999'),
348+
'9999999') # scientific notation for integers!
349+
self.assertEqual(fieldFormatter.representValue(layer, 2, {'Precision': 1}, None, '123'), '123')
350+
self.assertEqual(fieldFormatter.representValue(layer, 2, {'Precision': 1}, None, '123000'), '123000')
351+
self.assertEqual(fieldFormatter.representValue(layer, 2, {'Precision': 1}, None, '9999999'), '9999999') # scientific notation for long longs!
352+
self.assertEqual(fieldFormatter.representValue(layer, 1, {'Precision': 2}, None, '123000'), '123000.00')
353+
340354
QgsProject.instance().removeAllMapLayers()
341355

342356

0 commit comments

Comments
 (0)
Please sign in to comment.