def test_localizedCategories(self): # Default locale for tests is EN original_locale = QLocale() locale = QLocale(QLocale.English) locale.setNumberOptions(QLocale.DefaultNumberOptions) QLocale().setDefault(locale) layer = QgsVectorLayer( "Point?field=flddbl:double&field=fldint:integer", "addfeat", "memory") result = QgsCategorizedSymbolRenderer.createCategories( [1234.5, 2345.6, 3456.7], QgsMarkerSymbol(), layer, 'flddouble') self.assertEqual(result[0].label(), '1,234.5') self.assertEqual(result[1].label(), '2,345.6') self.assertEqual(result[2].label(), '3,456.7') # Test a non-dot locale QLocale().setDefault(QLocale(QLocale.Italian)) result = QgsCategorizedSymbolRenderer.createCategories( [[1234.5, 6789.1], 2345.6, 3456.7], QgsMarkerSymbol(), layer, 'flddouble') self.assertEqual(result[0].label(), '1.234,5;6.789,1') self.assertEqual(result[1].label(), '2.345,6') self.assertEqual(result[2].label(), '3.456,7') # Test round trip temp_dir = QTemporaryDir() temp_file = os.path.join(temp_dir.path(), 'project.qgs') project = QgsProject() layer.setRenderer(QgsCategorizedSymbolRenderer('Class', result)) project.addMapLayers([layer]) project.write(temp_file) QLocale().setDefault(original_locale) project = QgsProject() project.read(temp_file) results = project.mapLayersByName('addfeat')[0].renderer().categories() self.assertEqual(result[0].label(), '1.234,5;6.789,1') self.assertEqual(result[1].label(), '2.345,6') self.assertEqual(result[2].label(), '3.456,7') self.assertEqual(result[0].value(), [1234.5, 6789.1]) self.assertEqual(result[1].value(), 2345.6) self.assertEqual(result[2].value(), 3456.7)
def testCategories(self): layer = QgsVectorLayer("Point?field=fldtxt:string&field=fldint:integer", "addfeat", "memory") layer.setEditorWidgetSetup(1, QgsEditorWidgetSetup("ValueMap", {'map': [{'One': '1'}, {'Two': '2'}]})) result = QgsCategorizedSymbolRenderer.createCategories([1, 2, 3], QgsMarkerSymbol(), layer, 'fldint') self.assertEqual(result[0].label(), 'One') self.assertEqual(result[1].label(), 'Two') self.assertEqual(result[2].label(), '(3)')
def testCategories(self): layer = QgsVectorLayer("Point?field=fldtxt:string&field=fldint:integer", "addfeat", "memory") layer.setEditorWidgetSetup(1, QgsEditorWidgetSetup("ValueMap", {'map': [{'One': '1'}, {'Two': '2'}]})) result = QgsCategorizedSymbolRenderer.createCategories([1, 2, 3], QgsMarkerSymbol(), layer, 'fldint') self.assertEqual(result[0].label(), 'One') self.assertEqual(result[1].label(), 'Two') self.assertEqual(result[2].label(), '(3)')