Commit 7e6ad76b authored by Hernan Lozano's avatar Hernan Lozano Committed by Claude Paroz
Browse files

Fixed #19282 -- Restored ability to pass Decimals to intcomma filter

parent 10026c2a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
from __future__ import unicode_literals
import re
from datetime import date, datetime
from decimal import Decimal

from django import template
from django.conf import settings
@@ -35,7 +36,7 @@ def intcomma(value, use_l10n=True):
    """
    if settings.USE_L10N and use_l10n:
        try:
            if not isinstance(value, float):
            if not isinstance(value, (float, Decimal)):
                value = int(value)
        except (TypeError, ValueError):
            return intcomma(value, False)
+5 −4
Original line number Diff line number Diff line
from __future__ import unicode_literals
import datetime
from decimal import Decimal

try:
    import pytz
@@ -58,20 +59,20 @@ class HumanizeTests(TestCase):

    def test_intcomma(self):
        test_list = (100, 1000, 10123, 10311, 1000000, 1234567.25,
                     '100', '1000', '10123', '10311', '1000000', '1234567.1234567',
                     '100', '1000', '10123', '10311', '1000000', '1234567.1234567', Decimal('1234567.1234567'),
                     None)
        result_list = ('100', '1,000', '10,123', '10,311', '1,000,000', '1,234,567.25',
                       '100', '1,000', '10,123', '10,311', '1,000,000', '1,234,567.1234567',
                       '100', '1,000', '10,123', '10,311', '1,000,000', '1,234,567.1234567', '1,234,567.1234567',
                     None)

        self.humanize_tester(test_list, result_list, 'intcomma')

    def test_l10n_intcomma(self):
        test_list = (100, 1000, 10123, 10311, 1000000, 1234567.25,
                     '100', '1000', '10123', '10311', '1000000', '1234567.1234567',
                     '100', '1000', '10123', '10311', '1000000', '1234567.1234567', Decimal('1234567.1234567'),
                     None)
        result_list = ('100', '1,000', '10,123', '10,311', '1,000,000', '1,234,567.25',
                       '100', '1,000', '10,123', '10,311', '1,000,000', '1,234,567.1234567',
                       '100', '1,000', '10,123', '10,311', '1,000,000', '1,234,567.1234567', '1,234,567.1234567',
                     None)

        with self.settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=False):