diff options
| author | Tom Christie | 2013-02-07 12:57:40 +0000 |
|---|---|---|
| committer | Tom Christie | 2013-02-07 12:57:40 +0000 |
| commit | 670ac25b25a3c7fb54fca6aa9344b8250ab49edb (patch) | |
| tree | fdd12baeb96f10d8824d172553dbd6e469e8798d /rest_framework/tests/serializer.py | |
| parent | 8113d661260834a91d91481f31860398cde9212d (diff) | |
| download | django-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.py | 27 |
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( |
