From 5d380eca2efccd62c5d3e77ad03545f52cee2bff Mon Sep 17 00:00:00 2001 From: Kevin Brown Date: Tue, 7 Jan 2020 19:46:51 -0500 Subject: [PATCH] Add test for BooleanField(null=True, choices) --- tests/test_model_serializer.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index fbb562792..d1d719b68 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -235,6 +235,27 @@ class TestRegularFieldMappings(TestCase): self.assertEqual(repr(NullableBooleanSerializer()), expected) + def test_nullable_boolean_field_choices(self): + class NullableBooleanChoicesModel(models.Model): + CHECKLIST_OPTIONS = ( + (None, 'Unknown'), + (True, 'Yes'), + (False, 'No'), + ) + + field = models.BooleanField(null=True, choices=CHECKLIST_OPTIONS) + + class NullableBooleanChoicesSerializer(serializers.ModelSerializer): + class Meta: + model = NullableBooleanChoicesModel + fields = ['field'] + + serializer = NullableBooleanChoicesSerializer(data=dict( + field=None, + )) + self.assertTrue(serializer.is_valid()) + self.assertEqual(serializer.errors, {}) + def test_method_field(self): """ Properties and methods on the model should be allowed as `Meta.fields`