summaryrefslogtreecommitdiff
path: root/tests/forms_tests
diff options
context:
space:
mode:
authorDavid Sanders <dsanders11@ucsbalum.com>2016-04-24 12:06:30 -0700
committerSimon Charette <charettes@users.noreply.github.com>2016-04-24 15:06:30 -0400
commit218175b09d244b9c7c84c2f2d5f478297251bbe9 (patch)
tree688f90b3127892ec63fa8f11b5bbcb753f267814 /tests/forms_tests
parent188883048e2bbd25016ad2bd9b5b60abdefebe73 (diff)
Fixed #26534 -- Fixed boolean form fields has_changed() with hidden input.
Diffstat (limited to 'tests/forms_tests')
-rw-r--r--tests/forms_tests/field_tests/test_booleanfield.py5
-rw-r--r--tests/forms_tests/field_tests/test_nullbooleanfield.py7
2 files changed, 12 insertions, 0 deletions
diff --git a/tests/forms_tests/field_tests/test_booleanfield.py b/tests/forms_tests/field_tests/test_booleanfield.py
index 9c69c96762..0fa5357ae3 100644
--- a/tests/forms_tests/field_tests/test_booleanfield.py
+++ b/tests/forms_tests/field_tests/test_booleanfield.py
@@ -54,3 +54,8 @@ class BooleanFieldTest(SimpleTestCase):
self.assertTrue(f.has_changed(True, ''))
# Initial value may have mutated to a string due to show_hidden_initial (#19537)
self.assertTrue(f.has_changed('False', 'on'))
+ # HiddenInput widget sends string values for boolean but doesn't clean them in value_from_datadict
+ self.assertFalse(f.has_changed(False, 'False'))
+ self.assertFalse(f.has_changed(True, 'True'))
+ self.assertTrue(f.has_changed(False, 'True'))
+ self.assertTrue(f.has_changed(True, 'False'))
diff --git a/tests/forms_tests/field_tests/test_nullbooleanfield.py b/tests/forms_tests/field_tests/test_nullbooleanfield.py
index 74a2d7c173..ff4a16060e 100644
--- a/tests/forms_tests/field_tests/test_nullbooleanfield.py
+++ b/tests/forms_tests/field_tests/test_nullbooleanfield.py
@@ -67,3 +67,10 @@ class NullBooleanFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
self.assertTrue(f.has_changed(True, False))
self.assertTrue(f.has_changed(True, None))
self.assertTrue(f.has_changed(True, False))
+ # HiddenInput widget sends string values for boolean but doesn't clean them in value_from_datadict
+ self.assertFalse(f.has_changed(False, 'False'))
+ self.assertFalse(f.has_changed(True, 'True'))
+ self.assertFalse(f.has_changed(None, ''))
+ self.assertTrue(f.has_changed(False, 'True'))
+ self.assertTrue(f.has_changed(True, 'False'))
+ self.assertTrue(f.has_changed(None, 'False'))