mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-09 08:00:52 +03:00
Merge pull request #360 from jmagnusson/master
Tests for pull #358 "Return dictionaries as is"
This commit is contained in:
commit
746686b065
|
@ -122,6 +122,13 @@ class Person(RESTFrameworkModel):
|
||||||
name = models.CharField(max_length=10)
|
name = models.CharField(max_length=10)
|
||||||
age = models.IntegerField(null=True, blank=True)
|
age = models.IntegerField(null=True, blank=True)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def info(self):
|
||||||
|
return {
|
||||||
|
'name': self.name,
|
||||||
|
'age': self.age,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Model for issue #324
|
# Model for issue #324
|
||||||
class BlankFieldModel(RESTFrameworkModel):
|
class BlankFieldModel(RESTFrameworkModel):
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import datetime
|
import datetime
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.tests.models import *
|
from rest_framework.tests.models import (ActionItem, Anchor, BasicModel,
|
||||||
|
BlankFieldModel, BlogPost, CallableDefaultValueModel, DefaultValueModel,
|
||||||
|
ManyToManyModel, Person, ReadOnlyManyToManyModel)
|
||||||
|
|
||||||
|
|
||||||
class SubComment(object):
|
class SubComment(object):
|
||||||
|
@ -44,8 +46,11 @@ class ActionItemSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class PersonSerializer(serializers.ModelSerializer):
|
class PersonSerializer(serializers.ModelSerializer):
|
||||||
|
info = serializers.Field(source='info')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Person
|
model = Person
|
||||||
|
fields = ('name', 'age', 'info')
|
||||||
|
|
||||||
|
|
||||||
class BasicTests(TestCase):
|
class BasicTests(TestCase):
|
||||||
|
@ -67,6 +72,9 @@ class BasicTests(TestCase):
|
||||||
'created': datetime.datetime(2012, 1, 1),
|
'created': datetime.datetime(2012, 1, 1),
|
||||||
'sub_comment': 'And Merry Christmas!'
|
'sub_comment': 'And Merry Christmas!'
|
||||||
}
|
}
|
||||||
|
self.person_data = {'name': 'dwight', 'age': 35}
|
||||||
|
self.person = Person(**self.person_data)
|
||||||
|
self.person.save()
|
||||||
|
|
||||||
def test_empty(self):
|
def test_empty(self):
|
||||||
serializer = CommentSerializer()
|
serializer = CommentSerializer()
|
||||||
|
@ -97,6 +105,21 @@ class BasicTests(TestCase):
|
||||||
self.assertEquals(serializer.object, expected)
|
self.assertEquals(serializer.object, expected)
|
||||||
self.assertTrue(serializer.object is expected)
|
self.assertTrue(serializer.object is expected)
|
||||||
self.assertEquals(serializer.data['sub_comment'], 'And Merry Christmas!')
|
self.assertEquals(serializer.data['sub_comment'], 'And Merry Christmas!')
|
||||||
|
|
||||||
|
def test_model_fields_as_expected(self):
|
||||||
|
""" Make sure that the fields returned are the same as defined
|
||||||
|
in the Meta data
|
||||||
|
"""
|
||||||
|
serializer = PersonSerializer(instance=self.person)
|
||||||
|
self.assertEquals(set(serializer.data.keys()),
|
||||||
|
set(['name', 'age', 'info']))
|
||||||
|
|
||||||
|
def test_field_with_dictionary(self):
|
||||||
|
""" Make sure that dictionaries from fields are left intact
|
||||||
|
"""
|
||||||
|
serializer = PersonSerializer(instance=self.person)
|
||||||
|
expected = self.person_data
|
||||||
|
self.assertEquals(serializer.data['info'], expected)
|
||||||
|
|
||||||
|
|
||||||
class ValidationTests(TestCase):
|
class ValidationTests(TestCase):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user