예제 #1
0
 def test_floatfield_2(self):
     f = FloatField(required=False)
     self.assertIsNone(f.clean(''))
     self.assertIsNone(f.clean(None))
     self.assertEqual(1.0, f.clean('1'))
     self.assertIsNone(f.max_value)
     self.assertIsNone(f.min_value)
 def test_floatfield_2(self):
     f = FloatField(required=False)
     self.assertIsNone(f.clean(''))
     self.assertIsNone(f.clean(None))
     self.assertEqual(1.0, f.clean('1'))
     self.assertIsNone(f.max_value)
     self.assertIsNone(f.min_value)
예제 #3
0
 def test_floatfield_3(self):
     f = FloatField(max_value=1.5, min_value=0.5)
     self.assertWidgetRendersTo(f, '<input step="any" name="f" min="0.5" max="1.5" type="number" id="id_f" />')
     with self.assertRaisesMessage(ValidationError, "'Ensure this value is less than or equal to 1.5.'"):
         f.clean('1.6')
     with self.assertRaisesMessage(ValidationError, "'Ensure this value is greater than or equal to 0.5.'"):
         f.clean('0.4')
     self.assertEqual(1.5, f.clean('1.5'))
     self.assertEqual(0.5, f.clean('0.5'))
     self.assertEqual(f.max_value, 1.5)
     self.assertEqual(f.min_value, 0.5)
예제 #4
0
 def test_floatfield_3(self):
     f = FloatField(max_value=1.5, min_value=0.5)
     self.assertWidgetRendersTo(
         f,
         '<input step="any" name="f" min="0.5" max="1.5" type="number" id="id_f" required />',
     )
     with self.assertRaisesMessage(ValidationError, "'Ensure this value is less than or equal to 1.5.'"):
         f.clean('1.6')
     with self.assertRaisesMessage(ValidationError, "'Ensure this value is greater than or equal to 0.5.'"):
         f.clean('0.4')
     self.assertEqual(1.5, f.clean('1.5'))
     self.assertEqual(0.5, f.clean('0.5'))
     self.assertEqual(f.max_value, 1.5)
     self.assertEqual(f.min_value, 0.5)
예제 #5
0
 def test_floatfield_4(self):
     f = FloatField(step_size=0.02)
     self.assertWidgetRendersTo(
         f,
         '<input name="f" step="0.02" type="number" id="id_f" required>',
     )
     msg = "'Ensure this value is a multiple of step size 0.02.'"
     with self.assertRaisesMessage(ValidationError, msg):
         f.clean("0.01")
     self.assertEqual(2.34, f.clean("2.34"))
     self.assertEqual(2.1, f.clean("2.1"))
     self.assertEqual(-0.50, f.clean("-.5"))
     self.assertEqual(-1.26, f.clean("-1.26"))
     self.assertEqual(f.step_size, 0.02)
 def test_floatfield_1(self):
     f = FloatField()
     self.assertWidgetRendersTo(
         f,
         '<input step="any" type="number" name="f" id="id_f" required />')
     with self.assertRaisesMessage(ValidationError,
                                   "'This field is required.'"):
         f.clean('')
     with self.assertRaisesMessage(ValidationError,
                                   "'This field is required.'"):
         f.clean(None)
     self.assertEqual(1.0, f.clean('1'))
     self.assertIsInstance(f.clean('1'), float)
     self.assertEqual(23.0, f.clean('23'))
     self.assertEqual(3.1400000000000001, f.clean('3.14'))
     self.assertEqual(3.1400000000000001, f.clean(3.14))
     self.assertEqual(42.0, f.clean(42))
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('a')
     self.assertEqual(1.0, f.clean('1.0 '))
     self.assertEqual(1.0, f.clean(' 1.0'))
     self.assertEqual(1.0, f.clean(' 1.0 '))
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('1.0a')
     self.assertIsNone(f.max_value)
     self.assertIsNone(f.min_value)
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('Infinity')
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('NaN')
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('-Inf')
예제 #7
0
 def test_floatfield_1(self):
     f = FloatField()
     self.assertWidgetRendersTo(f, '<input step="any" type="number" name="f" id="id_f" required />')
     with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
         f.clean('')
     with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
         f.clean(None)
     self.assertEqual(1.0, f.clean('1'))
     self.assertIsInstance(f.clean('1'), float)
     self.assertEqual(23.0, f.clean('23'))
     self.assertEqual(3.1400000000000001, f.clean('3.14'))
     self.assertEqual(3.1400000000000001, f.clean(3.14))
     self.assertEqual(42.0, f.clean(42))
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('a')
     self.assertEqual(1.0, f.clean('1.0 '))
     self.assertEqual(1.0, f.clean(' 1.0'))
     self.assertEqual(1.0, f.clean(' 1.0 '))
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('1.0a')
     self.assertIsNone(f.max_value)
     self.assertIsNone(f.min_value)
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('Infinity')
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('NaN')
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean('-Inf')
예제 #8
0
 def test_decimalfield_support_decimal_separator(self):
     f = FloatField(localize=True)
     self.assertEqual(f.clean('1001,10'), 1001.10)
     self.assertEqual(f.clean('1001.10'), 1001.10)
예제 #9
0
 def test_decimalfield_support_thousands_separator(self):
     f = FloatField(localize=True)
     self.assertEqual(f.clean('1.001,10'), 1001.10)
     msg = "'Enter a number.'"
     with self.assertRaisesMessage(ValidationError, msg):
         f.clean('1,001.1')
예제 #10
0
 def test_decimalfield_support_thousands_separator(self):
     f = FloatField(localize=True)
     self.assertEqual(f.clean('1.001,10'), 1001.10)
     msg = "'Enter a number.'"
     with self.assertRaisesMessage(ValidationError, msg):
         f.clean('1,001.1')
예제 #11
0
 def test_decimalfield_support_decimal_separator(self):
     f = FloatField(localize=True)
     self.assertEqual(f.clean('1001,10'), 1001.10)
     self.assertEqual(f.clean('1001.10'), 1001.10)
예제 #12
0
 def test_floatfield_1(self):
     f = FloatField()
     self.assertWidgetRendersTo(
         f, '<input step="any" type="number" name="f" id="id_f" required>')
     with self.assertRaisesMessage(ValidationError,
                                   "'This field is required.'"):
         f.clean("")
     with self.assertRaisesMessage(ValidationError,
                                   "'This field is required.'"):
         f.clean(None)
     self.assertEqual(1.0, f.clean("1"))
     self.assertIsInstance(f.clean("1"), float)
     self.assertEqual(23.0, f.clean("23"))
     self.assertEqual(3.1400000000000001, f.clean("3.14"))
     self.assertEqual(3.1400000000000001, f.clean(3.14))
     self.assertEqual(42.0, f.clean(42))
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean("a")
     self.assertEqual(1.0, f.clean("1.0 "))
     self.assertEqual(1.0, f.clean(" 1.0"))
     self.assertEqual(1.0, f.clean(" 1.0 "))
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean("1.0a")
     self.assertIsNone(f.max_value)
     self.assertIsNone(f.min_value)
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean("Infinity")
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean("NaN")
     with self.assertRaisesMessage(ValidationError, "'Enter a number.'"):
         f.clean("-Inf")