templatetags: handle only integers with as_numeral filter (#58158)

This commit is contained in:
Valentin Deniaud 2021-10-25 11:59:30 +02:00
parent b333bf4833
commit 38189e9de7
2 changed files with 4 additions and 3 deletions

View File

@ -43,6 +43,7 @@ def as_numeral(number):
number = parse_float(number)
if not number:
return ''
number = int(number)
try:
return num2words(number, lang=get_language())
except (TypeError, ValueError, decimal.InvalidOperation):

View File

@ -21,8 +21,8 @@ def test_as_numeral(settings):
t = Template('{{ number|as_numeral }}')
assert t.render(Context({'number': 42})) == 'forty-two'
assert t.render(Context({'number': '42'})) == 'forty-two'
assert t.render(Context({'number': 42.15})) == 'forty-two point one five'
assert t.render(Context({'number': '42,15'})) == 'forty-two point one five'
assert t.render(Context({'number': 42.15})) == 'forty-two'
assert t.render(Context({'number': '42,15'})) == 'forty-two'
assert t.render(Context({'number': -42})) == 'minus forty-two'
assert t.render(Context({'number': 100200})) == 'one hundred thousand, two hundred'
assert t.render(Context({'number': '100200'})) == 'one hundred thousand, two hundred'
@ -34,7 +34,7 @@ def test_as_numeral(settings):
settings.LANGUAGE_CODE = 'fr'
assert t.render(Context({'number': '42'})) == 'quarante-deux'
assert t.render(Context({'number': 42.15})) == 'quarante-deux virgule un cinq'
assert t.render(Context({'number': 42.15})) == 'quarante-deux'
assert t.render(Context({'number': 100200})) == 'cent mille deux cents'