From 7bb92d3ba56e284b7f604fe7b787cbe068e22148 Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Tue, 20 Mar 2018 13:43:52 +0100 Subject: [PATCH] Add test for allow_null + required=False Ref #5708: allow_null should imply default=None, even for non-required fields. flake8 --- tests/test_serializer.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/test_serializer.py b/tests/test_serializer.py index 120632572..c077e7f62 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -486,12 +486,16 @@ class TestDefaultOutput: assert Serializer({'nested': {'a': '3', 'b': {'c': '4'}}}).data == {'nested': {'a': '3', 'c': '4'}} def test_default_for_allow_null(self): - # allow_null=True should imply default=None + """ + Without an explicit default, allow_null implies default=None when serializing. #5518 #5708 + """ class Serializer(serializers.Serializer): foo = serializers.CharField() bar = serializers.CharField(source='foo.bar', allow_null=True) + optional = serializers.CharField(required=False, allow_null=True) - assert Serializer({'foo': None}).data == {'foo': None, 'bar': None} + # allow_null=True should imply default=None when serialising: + assert Serializer({'foo': None}).data == {'foo': None, 'bar': None, 'optional': None, } class TestCacheSerializerData: