This commit is contained in:
Nathan Hubbell 2014-09-18 18:57:53 +00:00
commit eea279d651
2 changed files with 23 additions and 1 deletions

View File

@ -184,3 +184,10 @@ class NullableOneToOneSource(RESTFrameworkModel):
class BasicModelSerializer(serializers.ModelSerializer): class BasicModelSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = BasicModel model = BasicModel
class PartialUpdateModel(RESTFrameworkModel):
text = models.CharField(max_length=100)
extra = models.CharField(max_length=100)
textra = models.CharField(max_length=100)
text_extra = models.CharField(max_length=100)

View File

@ -11,7 +11,7 @@ from tests.models import (
HasPositiveIntegerAsChoice, Album, ActionItem, Anchor, BasicModel, HasPositiveIntegerAsChoice, Album, ActionItem, Anchor, BasicModel,
BlankFieldModel, BlogPost, BlogPostComment, Book, CallableDefaultValueModel, BlankFieldModel, BlogPost, BlogPostComment, Book, CallableDefaultValueModel,
DefaultValueModel, ManyToManyModel, Person, ReadOnlyManyToManyModel, Photo, DefaultValueModel, ManyToManyModel, Person, ReadOnlyManyToManyModel, Photo,
RESTFrameworkModel, ForeignKeySource RESTFrameworkModel, ForeignKeySource, PartialUpdateModel
) )
from tests.models import BasicModelSerializer from tests.models import BasicModelSerializer
import datetime import datetime
@ -192,6 +192,12 @@ class HyperlinkedForeignKeySourceSerializer(serializers.HyperlinkedModelSerializ
model = ForeignKeySource model = ForeignKeySource
class PartialUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = PartialUpdateModel
fields = ['text', 'extra', 'textra', 'text_extra']
class BasicTests(TestCase): class BasicTests(TestCase):
def setUp(self): def setUp(self):
self.comment = Comment( self.comment = Comment(
@ -349,6 +355,15 @@ class BasicTests(TestCase):
exclusions = serializer.get_validation_exclusions() exclusions = serializer.get_validation_exclusions()
self.assertTrue('title' in exclusions, '`title` field was marked `required=False` and should be excluded') self.assertTrue('title' in exclusions, '`title` field was marked `required=False` and should be excluded')
def test_a_partial_update(self):
serializer = PartialUpdateSerializer(data={'text': 'blah', 'extra': 'blah blah', 'textra': 'blargh',
'text_extra': 'blarghal'})
if serializer.is_valid():
serializer.save()
entry = PartialUpdateModel.objects.get(text='blah')
second_serializer = PartialUpdateSerializer(entry, data={'textra': 'something different'}, partial=True)
self.assertEquals(True, second_serializer.is_valid())
class DictStyleSerializer(serializers.Serializer): class DictStyleSerializer(serializers.Serializer):
""" """