From 6b2230abcc74caba6a12c0967bbd6d447c9e8037 Mon Sep 17 00:00:00 2001 From: Vojtech Oram Date: Thu, 23 Jun 2016 13:53:16 +0200 Subject: [PATCH] #3788 Added failing TestCase for default value being ignored at BooleanField --- tests/test_serializer.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/test_serializer.py b/tests/test_serializer.py index 741c6ab17..bc1505351 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -4,6 +4,8 @@ from __future__ import unicode_literals import pickle import pytest +from django.db import models +from django.http import QueryDict from rest_framework import serializers from rest_framework.compat import unicode_repr @@ -309,3 +311,26 @@ class TestCacheSerializerData: pickled = pickle.dumps(serializer.data) data = pickle.loads(pickled) assert data == {'field1': 'a', 'field2': 'b'} + + +class DefaultTrueBooleanModel(models.Model): + required_data = models.CharField(max_length=255) + visible = models.BooleanField(default=True) + + +class TestSerializerDefaultTrueBoolean: + + def setup(self): + class DefaultTrueBooleanSerializer(serializers.ModelSerializer): + class Meta: + model = DefaultTrueBooleanModel + fields = ('required_data', 'visible') + + self.default_true_boolean_serializer = DefaultTrueBooleanSerializer + + def test_default_value(self): + data = QueryDict('', mutable=True) + data.update({'required_data': 'foo'}) + serializer = self.default_true_boolean_serializer(data=data) + serializer.is_valid() + assert serializer.data['visible']