Fixed #21959 -- Handled Inf/NaN in widthratio tag.
Thanks rmoe for the report and the patch.
This commit is contained in:
parent
5d263dee30
commit
07ae47f7f8
|
@ -498,11 +498,11 @@ class WidthRatioNode(Node):
|
|||
value = float(value)
|
||||
max_value = float(max_value)
|
||||
ratio = (value / max_value) * max_width
|
||||
result = str(int(round(ratio)))
|
||||
except ZeroDivisionError:
|
||||
return '0'
|
||||
except (ValueError, TypeError):
|
||||
except (ValueError, TypeError, OverflowError):
|
||||
return ''
|
||||
result = str(int(round(ratio)))
|
||||
|
||||
if self.asvar:
|
||||
context[self.asvar] = result
|
||||
|
|
|
@ -1668,6 +1668,8 @@ class TemplateTests(TestCase):
|
|||
|
||||
'widthratio18': ('{% widthratio a b 100 as %}', {}, template.TemplateSyntaxError),
|
||||
'widthratio19': ('{% widthratio a b 100 not_as variable %}', {}, template.TemplateSyntaxError),
|
||||
'widthratio20': ('{% widthratio a b 100 %}', {'a': float('inf'), 'b': float('inf')}, ''),
|
||||
'widthratio21': ('{% widthratio a b 100 %}', {'a': float('inf'), 'b': 2}, ''),
|
||||
|
||||
### WITH TAG ########################################################
|
||||
'with01': ('{% with key=dict.key %}{{ key }}{% endwith %}', {'dict': {'key': 50}}, '50'),
|
||||
|
|
Loading…
Reference in New Issue