diff options
| author | Tim Graham <timograham@gmail.com> | 2017-05-06 10:56:28 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-03-20 12:10:10 -0400 |
| commit | 5fa4f40f45fcdbb7e48489ed3039a314b5c961d0 (patch) | |
| tree | 272b8798d2c2a054f56d8613a42453bce30f92c0 /tests/model_fields/test_booleanfield.py | |
| parent | 73f7d1755ff1da3aac687c7b046e4b5028e505db (diff) | |
Fixed #29227 -- Allowed BooleanField to be null=True.
Thanks Lynn Cyrin for contributing to the patch, and Nick Pope for review.
Diffstat (limited to 'tests/model_fields/test_booleanfield.py')
| -rw-r--r-- | tests/model_fields/test_booleanfield.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/tests/model_fields/test_booleanfield.py b/tests/model_fields/test_booleanfield.py index f295f24980..72c9293d93 100644 --- a/tests/model_fields/test_booleanfield.py +++ b/tests/model_fields/test_booleanfield.py @@ -24,12 +24,18 @@ class BooleanFieldTests(TestCase): self._test_get_prep_value(models.BooleanField()) def test_nullbooleanfield_get_prep_value(self): + self._test_get_prep_value(models.BooleanField(null=True)) + + def test_nullbooleanfield_old_get_prep_value(self): self._test_get_prep_value(models.NullBooleanField()) def test_booleanfield_to_python(self): self._test_to_python(models.BooleanField()) def test_nullbooleanfield_to_python(self): + self._test_to_python(models.BooleanField(null=True)) + + def test_nullbooleanfield_old_to_python(self): self._test_to_python(models.NullBooleanField()) def test_booleanfield_choices_blank(self): @@ -42,6 +48,8 @@ class BooleanFieldTests(TestCase): self.assertEqual(f.formfield().choices, choices) def test_nullbooleanfield_formfield(self): + f = models.BooleanField(null=True) + self.assertIsInstance(f.formfield(), forms.NullBooleanField) f = models.NullBooleanField() self.assertIsInstance(f.formfield(), forms.NullBooleanField) @@ -54,13 +62,15 @@ class BooleanFieldTests(TestCase): b2.refresh_from_db() self.assertIs(b2.bfield, False) - b3 = NullBooleanModel.objects.create(nbfield=True) + b3 = NullBooleanModel.objects.create(nbfield=True, nbfield_old=True) b3.refresh_from_db() self.assertIs(b3.nbfield, True) + self.assertIs(b3.nbfield_old, True) - b4 = NullBooleanModel.objects.create(nbfield=False) + b4 = NullBooleanModel.objects.create(nbfield=False, nbfield_old=False) b4.refresh_from_db() self.assertIs(b4.nbfield, False) + self.assertIs(b4.nbfield_old, False) # When an extra clause exists, the boolean conversions are applied with # an offset (#13293). @@ -73,8 +83,8 @@ class BooleanFieldTests(TestCase): """ bmt = BooleanModel.objects.create(bfield=True) bmf = BooleanModel.objects.create(bfield=False) - nbmt = NullBooleanModel.objects.create(nbfield=True) - nbmf = NullBooleanModel.objects.create(nbfield=False) + nbmt = NullBooleanModel.objects.create(nbfield=True, nbfield_old=True) + nbmf = NullBooleanModel.objects.create(nbfield=False, nbfield_old=False) m1 = FksToBooleans.objects.create(bf=bmt, nbf=nbmt) m2 = FksToBooleans.objects.create(bf=bmf, nbf=nbmf) @@ -88,8 +98,10 @@ class BooleanFieldTests(TestCase): mc = FksToBooleans.objects.select_related().get(pk=m2.id) self.assertIs(mb.bf.bfield, True) self.assertIs(mb.nbf.nbfield, True) + self.assertIs(mb.nbf.nbfield_old, True) self.assertIs(mc.bf.bfield, False) self.assertIs(mc.nbf.nbfield, False) + self.assertIs(mc.nbf.nbfield_old, False) def test_null_default(self): """ @@ -105,6 +117,7 @@ class BooleanFieldTests(TestCase): nb = NullBooleanModel() self.assertIsNone(nb.nbfield) + self.assertIsNone(nb.nbfield_old) nb.save() # no error @@ -120,5 +133,5 @@ class ValidationTest(SimpleTestCase): NullBooleanField shouldn't throw a validation error when given a value of None. """ - nullboolean = NullBooleanModel(nbfield=None) + nullboolean = NullBooleanModel(nbfield=None, nbfield_old=None) nullboolean.full_clean() |
