summaryrefslogtreecommitdiff
path: root/tests/forms_tests
diff options
context:
space:
mode:
authorKapil Bansal <kapilbansal.gbpecdelhi@gmail.com>2022-05-12 11:30:47 +0200
committerCarlton Gibson <carlton@noumenal.es>2022-05-12 14:16:52 +0200
commit3a82b5f655446f0ca89e3b6a92b100aa458f348f (patch)
tree6e600054369b9316865b3b5b3ab1838769a2b54e /tests/forms_tests
parent68da6b389c403cb91650754be0e2287696807333 (diff)
Fixed #32559 -- Added 'step_size’ to numeric form fields.
Co-authored-by: Jacob Rief <jacob.rief@uibk.ac.at>
Diffstat (limited to 'tests/forms_tests')
-rw-r--r--tests/forms_tests/field_tests/test_floatfield.py15
-rw-r--r--tests/forms_tests/field_tests/test_integerfield.py14
2 files changed, 29 insertions, 0 deletions
diff --git a/tests/forms_tests/field_tests/test_floatfield.py b/tests/forms_tests/field_tests/test_floatfield.py
index f6022807be..94676fb9ee 100644
--- a/tests/forms_tests/field_tests/test_floatfield.py
+++ b/tests/forms_tests/field_tests/test_floatfield.py
@@ -70,6 +70,21 @@ class FloatFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
self.assertEqual(f.max_value, 1.5)
self.assertEqual(f.min_value, 0.5)
+ 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_widget_attrs(self):
f = FloatField(widget=NumberInput(attrs={"step": 0.01, "max": 1.0, "min": 0.0}))
self.assertWidgetRendersTo(
diff --git a/tests/forms_tests/field_tests/test_integerfield.py b/tests/forms_tests/field_tests/test_integerfield.py
index 15314d53a4..1361b5cc9e 100644
--- a/tests/forms_tests/field_tests/test_integerfield.py
+++ b/tests/forms_tests/field_tests/test_integerfield.py
@@ -112,6 +112,20 @@ class IntegerFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
self.assertEqual(f.max_value, 20)
self.assertEqual(f.min_value, 10)
+ def test_integerfield_6(self):
+ f = IntegerField(step_size=3)
+ self.assertWidgetRendersTo(
+ f,
+ '<input name="f" step="3" type="number" id="id_f" required>',
+ )
+ with self.assertRaisesMessage(
+ ValidationError, "'Ensure this value is a multiple of step size 3.'"
+ ):
+ f.clean("10")
+ self.assertEqual(12, f.clean(12))
+ self.assertEqual(12, f.clean("12"))
+ self.assertEqual(f.step_size, 3)
+
def test_integerfield_localized(self):
"""
A localized IntegerField's widget renders to a text input without any