Commit df193b3c authored by Claude Paroz's avatar Claude Paroz
Browse files

Fixed #24382 -- Allowed unicode chars inside formatted numbers

Thanks Jacob Rief for the report and Tim Graham for the review.
parent ea9157f6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
from __future__ import unicode_literals

from decimal import Decimal

from django.conf import settings
+15 −0
Original line number Diff line number Diff line
# -*- encoding: utf-8 -*-
from __future__ import unicode_literals

from decimal import Decimal
from sys import float_info
from unittest import TestCase
@@ -59,3 +62,15 @@ class TestNumberFormat(TestCase):
        self.assertEqual(nformat(Decimal('1234'), '.', grouping=2, thousand_sep=',', force_grouping=True), '12,34')
        self.assertEqual(nformat(Decimal('-1234.33'), '.', decimal_pos=1), '-1234.3')
        self.assertEqual(nformat(Decimal('0.00000001'), '.', decimal_pos=8), '0.00000001')

    def test_decimal_subclass(self):
        class EuroDecimal(Decimal):
            """
            Wrapper for Decimal which prefixes each amount with the € symbol.
            """
            def __format__(self, specifier, **kwargs):
                amount = super(EuroDecimal, self).__format__(specifier, **kwargs)
                return '€ {}'.format(amount)

        price = EuroDecimal('1.23')
        self.assertEqual(nformat(price, ','), '€ 1,23')