From 3a82b5f655446f0ca89e3b6a92b100aa458f348f Mon Sep 17 00:00:00 2001 From: Kapil Bansal Date: Thu, 12 May 2022 11:30:47 +0200 Subject: Fixed #32559 -- Added 'step_size’ to numeric form fields. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jacob Rief --- tests/forms_tests/field_tests/test_floatfield.py | 15 +++++++++++++++ tests/forms_tests/field_tests/test_integerfield.py | 14 ++++++++++++++ 2 files changed, 29 insertions(+) (limited to 'tests/forms_tests') 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, + '', + ) + 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, + '', + ) + 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 -- cgit v1.3