summaryrefslogtreecommitdiff
path: root/tests/model_fields/test_booleanfield.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/model_fields/test_booleanfield.py')
-rw-r--r--tests/model_fields/test_booleanfield.py23
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()