aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests
diff options
context:
space:
mode:
authorJacob Magnusson2012-11-03 00:32:02 +0100
committerJacob Magnusson2012-11-03 00:32:02 +0100
commit1b49615c00793b658f40d08617965316a3f71a7e (patch)
tree78ccdc7e8a7e86f30ef4bb1c220a2a9058602610 /rest_framework/tests
parent19a218f85973b4c478ec0b8373e971e1d787281a (diff)
downloaddjango-rest-framework-1b49615c00793b658f40d08617965316a3f71a7e.tar.bz2
Added test that makes sure that fields with
dictionaries as data are returned as expected and not turned into string representations
Diffstat (limited to 'rest_framework/tests')
-rw-r--r--rest_framework/tests/models.py7
-rw-r--r--rest_framework/tests/serializer.py13
2 files changed, 20 insertions, 0 deletions
diff --git a/rest_framework/tests/models.py b/rest_framework/tests/models.py
index 415e4d06..1a0078e8 100644
--- a/rest_framework/tests/models.py
+++ b/rest_framework/tests/models.py
@@ -122,6 +122,13 @@ class Person(RESTFrameworkModel):
name = models.CharField(max_length=10)
age = models.IntegerField(null=True, blank=True)
+ @property
+ def info(self):
+ return {
+ 'name': self.name,
+ 'age': self.age,
+ }
+
# Model for issue #324
class BlankFieldModel(RESTFrameworkModel):
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py
index 9febc9c8..5d46ff68 100644
--- a/rest_framework/tests/serializer.py
+++ b/rest_framework/tests/serializer.py
@@ -46,8 +46,11 @@ class ActionItemSerializer(serializers.ModelSerializer):
class PersonSerializer(serializers.ModelSerializer):
+ info = serializers.Field(source='info')
+
class Meta:
model = Person
+ fields = ('name', 'age', 'info')
class BasicTests(TestCase):
@@ -69,6 +72,9 @@ class BasicTests(TestCase):
'created': datetime.datetime(2012, 1, 1),
'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):
serializer = CommentSerializer()
@@ -100,6 +106,13 @@ class BasicTests(TestCase):
self.assertTrue(serializer.object is expected)
self.assertEquals(serializer.data['sub_comment'], 'And Merry Christmas!')
+ 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):
def setUp(self):