aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/serializer.py
diff options
context:
space:
mode:
authorTom Christie2013-02-07 12:57:40 +0000
committerTom Christie2013-02-07 12:57:40 +0000
commit670ac25b25a3c7fb54fca6aa9344b8250ab49edb (patch)
treefdd12baeb96f10d8824d172553dbd6e469e8798d /rest_framework/tests/serializer.py
parent8113d661260834a91d91481f31860398cde9212d (diff)
downloaddjango-rest-framework-670ac25b25a3c7fb54fca6aa9344b8250ab49edb.tar.bz2
Allow serializers to handle dicts as well as objects. Fixes #447.
Diffstat (limited to 'rest_framework/tests/serializer.py')
-rw-r--r--rest_framework/tests/serializer.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py
index 62de16ab..2d17e99d 100644
--- a/rest_framework/tests/serializer.py
+++ b/rest_framework/tests/serializer.py
@@ -185,6 +185,33 @@ class BasicTests(TestCase):
self.assertEquals(instance.age, self.person_data['age'])
+class DictStyleSerializer(serializers.Serializer):
+ """
+ Note that we don't have any `restore_object` method, so the default
+ case of simply returning a dict will apply.
+ """
+ email = serializers.EmailField()
+
+
+class DictStyleSerializerTests(TestCase):
+ def test_dict_style_deserialize(self):
+ """
+ Ensure serializers can deserialize into a dict.
+ """
+ data = {'email': 'foo@example.com'}
+ serializer = DictStyleSerializer(data=data)
+ self.assertTrue(serializer.is_valid())
+ self.assertEquals(serializer.data, data)
+
+ def test_dict_style_serialize(self):
+ """
+ Ensure serializers can serialize dict objects.
+ """
+ data = {'email': 'foo@example.com'}
+ serializer = DictStyleSerializer(data)
+ self.assertEquals(serializer.data, data)
+
+
class ValidationTests(TestCase):
def setUp(self):
self.comment = Comment(