Fixed #28562 -- Fixed DecimalValidator handling of positive exponent scientific notation.

This commit is contained in:
Josh Schneier 2017-09-27 09:42:04 -04:00 committed by Tim Graham
parent 4a908c0cd2
commit e8c4596329
3 changed files with 21 additions and 13 deletions

View file

@ -119,11 +119,12 @@ class DecimalFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
f.clean('1.1')
def test_decimalfield_scientific(self):
f = DecimalField(max_digits=2, decimal_places=2)
self.assertEqual(f.clean('1E+2'), decimal.Decimal('1E+2'))
self.assertEqual(f.clean('1e+2'), decimal.Decimal('1E+2'))
f = DecimalField(max_digits=4, decimal_places=2)
with self.assertRaisesMessage(ValidationError, "Ensure that there are no more"):
f.clean('0.546e+2')
f.clean('1E+2')
self.assertEqual(f.clean('1E+1'), decimal.Decimal('10'))
self.assertEqual(f.clean('1E-1'), decimal.Decimal('0.1'))
self.assertEqual(f.clean('0.546e+2'), decimal.Decimal('54.6'))
def test_decimalfield_widget_attrs(self):
f = DecimalField(max_digits=6, decimal_places=2)