Ejemplo n.º 1
0
    def test_displayString(self):
        """Test the displayString method"""

        # Default locale for tests is EN
        original_locale = QLocale()
        locale = QLocale(QLocale.English)
        locale.setNumberOptions(QLocale.DefaultNumberOptions)
        QLocale().setDefault(locale)

        self.assertEqual(QgsCategorizedSymbolRenderer.displayString(1234.56),
                         "1,234.56")
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(1234.56, 4),
            "1,234.5600")
        self.assertEqual(QgsCategorizedSymbolRenderer.displayString(1234567),
                         "1,234,567")
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(1234567.0, 4),
            "1,234,567.0000")
        # Precision is ignored for integers
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(1234567, 4),
            "1,234,567")

        # Test list
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString([1234567, 891234], 4),
            "1,234,567;891,234")
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(
                [1234567.123, 891234.123], 4), "1,234,567.1230;891,234.1230")

        locale.setNumberOptions(QLocale.OmitGroupSeparator)
        QLocale().setDefault(locale)
        self.assertTrue(QLocale().numberOptions() & QLocale.OmitGroupSeparator)
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString([1234567, 891234], 4),
            "1234567;891234")
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(
                [1234567.123, 891234.123], 4), "1234567.1230;891234.1230")

        # Test a non-dot locale
        locale = QLocale(QLocale.Italian)
        locale.setNumberOptions(QLocale.DefaultNumberOptions)
        QLocale().setDefault(locale)
        self.assertEqual(QgsCategorizedSymbolRenderer.displayString(1234.56),
                         "1.234,56")
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(1234.56, 4),
            "1.234,5600")
        self.assertEqual(QgsCategorizedSymbolRenderer.displayString(1234567),
                         "1.234.567")
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(1234567.0, 4),
            "1.234.567,0000")
        # Precision is ignored for integers
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(1234567, 4),
            "1.234.567")

        # Test list
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString([1234567, 891234], 4),
            "1.234.567;891.234")
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(
                [1234567.123, 891234.123], 4), "1.234.567,1230;891.234,1230")

        locale.setNumberOptions(QLocale.OmitGroupSeparator)
        QLocale().setDefault(locale)
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString([1234567, 891234], 4),
            "1234567;891234")
        self.assertEqual(
            QgsCategorizedSymbolRenderer.displayString(
                [1234567.123, 891234.123], 4), "1234567,1230;891234,1230")

        QLocale().setDefault(original_locale)