diff options
| -rw-r--r-- | rest_framework/serializers.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/serializer.py | 7 | 
2 files changed, 8 insertions, 1 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index a6dbf5d7..0a2e103f 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -33,7 +33,7 @@ class DictWithMetadata(dict):          """          # return an instance of the first dict in MRO that isn't a DictWithMetadata          for base in self.__class__.__mro__: -            if not isinstance(base, DictWithMetadata) and isinstance(base, dict): +            if not issubclass(base, DictWithMetadata) and issubclass(base, dict):                  return base(self) diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index 2d17e99d..19379552 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -900,6 +900,13 @@ class SerializerPickleTests(TestCase):                  fields = ('name', 'age')          pickle.dumps(InnerPersonSerializer(Person(name="Noah", age=950)).data) +    def test_getstate_method_should_not_return_none(self): +        '''Regression test for  +        https://github.com/tomchristie/django-rest-framework/issues/645 +        ''' +        d = serializers.DictWithMetadata({1:1}) +        self.assertEqual(d.__getstate__(), serializers.SortedDict({1:1})) +  class DepthTest(TestCase):      def test_implicit_nesting(self):  | 
