diff options
| author | Tom Christie | 2012-12-06 14:54:28 -0800 | 
|---|---|---|
| committer | Tom Christie | 2012-12-06 14:54:28 -0800 | 
| commit | 6ffcd7ba36c95c7398df2b5427eaef15ee1965a2 (patch) | |
| tree | d05efa9deb50c5392efe0cd8848cab719eb95760 /rest_framework/tests | |
| parent | 6a5f4f2a90ab19a8586a9d762c9b2618e8db5c30 (diff) | |
| parent | cb7d9ea5c9843ffa99db4400670a11c3651520cc (diff) | |
| download | django-rest-framework-6ffcd7ba36c95c7398df2b5427eaef15ee1965a2.tar.bz2 | |
Merge pull request #477 from roberts81/master
Fix for #460 
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/serializer.py | 26 | 
1 files changed, 25 insertions, 1 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index 26a7d6bf..6aa211f4 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -1,4 +1,4 @@ -import datetime +import datetime, pickle  from django.test import TestCase  from rest_framework import serializers  from rest_framework.tests.models import (ActionItem, Anchor, BasicModel, @@ -682,3 +682,27 @@ class BlankFieldTests(TestCase):          """          serializer = self.not_blank_model_serializer_class(data=self.data)          self.assertEquals(serializer.is_valid(), False) + + +#test for issue #460 +class SerializerPickleTests(TestCase): +    """ +    Test pickleability of the output of Serializers +    """ +    def test_pickle_simple_model_serializer_data(self): +        """ +        Test simple serializer +        """ +        pickle.dumps(PersonSerializer(Person(name="Methusela", age=969)).data) + +    def test_pickle_inner_serializer(self): +        """ +        Test pickling a serializer whose resulting .data (a SortedDictWithMetadata) will +        have unpickleable meta data--in order to make sure metadata doesn't get pulled into the pickle. +        See DictWithMetadata.__getstate__ +        """ +        class InnerPersonSerializer(serializers.ModelSerializer): +            class Meta: +                model = Person +                fields = ('name', 'age') +        pickle.dumps(InnerPersonSerializer(Person(name="Noah", age=950)).data)  | 
