From 470f557a87dafc8d051a494ad9203429bd175d05 Mon Sep 17 00:00:00 2001 From: Francis Reyes Date: Mon, 8 Jul 2013 16:37:40 +1000 Subject: [PATCH] Create failing test for issue #949 --- rest_framework/tests/models.py | 5 +++++ rest_framework/tests/test_serializer.py | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/rest_framework/tests/models.py b/rest_framework/tests/models.py index 1598ecd94..a79ddafe3 100644 --- a/rest_framework/tests/models.py +++ b/rest_framework/tests/models.py @@ -60,6 +60,11 @@ class ReadOnlyManyToManyModel(RESTFrameworkModel): rel = models.ManyToManyField(Anchor) +class OptionalDateTimeModel(RESTFrameworkModel): + text = models.CharField(max_length=100) + date_read = models.DateTimeField(null=True) + + # Model for regression test for #285 class Comment(RESTFrameworkModel): diff --git a/rest_framework/tests/test_serializer.py b/rest_framework/tests/test_serializer.py index 38acc3540..7b5c85d0d 100644 --- a/rest_framework/tests/test_serializer.py +++ b/rest_framework/tests/test_serializer.py @@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _ from rest_framework import serializers, fields, relations from rest_framework.tests.models import (HasPositiveIntegerAsChoice, Album, ActionItem, Anchor, BasicModel, BlankFieldModel, BlogPost, BlogPostComment, Book, CallableDefaultValueModel, DefaultValueModel, - ManyToManyModel, Person, ReadOnlyManyToManyModel, Photo, RESTFrameworkModel) + ManyToManyModel, Person, ReadOnlyManyToManyModel, Photo, OptionalDateTimeModel, RESTFrameworkModel) from rest_framework.tests.models import BasicModelSerializer import datetime import pickle @@ -129,6 +129,14 @@ class PositiveIntegerAsChoiceSerializer(serializers.ModelSerializer): fields = ['some_integer'] +class OptionalDateTimeSerializer(serializers.ModelSerializer): + date_read = serializers.DateTimeField(source='date_read', required=False) + + class Meta: + model = OptionalDateTimeModel + fields = ['text', 'date_read'] + + class BasicTests(TestCase): def setUp(self): self.comment = Comment( @@ -547,6 +555,10 @@ class ModelValidationTests(TestCase): self.assertTrue(photo_serializer.is_valid()) self.assertTrue(photo_serializer.save()) + def test_datetime_with_partial(self): + serializer = OptionalDateTimeSerializer(data={'text': 'blah', 'date_read': None}, partial=True) + self.assertEquals(True, serializer.is_valid()) + class RegexValidationTest(TestCase): def test_create_failed(self):