From 20905904725803d4ad71d00e39928096265ab41d Mon Sep 17 00:00:00 2001 From: j0hnsmith Date: Tue, 27 Jan 2015 12:52:12 +0000 Subject: [PATCH] test read_only field functionality is same as meta read_only_fields --- tests/test_serializer.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/test_serializer.py b/tests/test_serializer.py index b7a0484bc..826d0b939 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -295,3 +295,32 @@ class TestCacheSerializerData: pickled = pickle.dumps(serializer.data) data = pickle.loads(pickled) assert data == {'field1': 'a', 'field2': 'b'} + + +class TestReadOnlyMetaVsFields: + def setup(self): + class ReadOnlyMetaSerializer(serializers.Serializer): + foo = serializers.CharField() + class Meta: + read_only_fields = ( + 'foo', + ) + + class ReadOnlyFieldSerializer(serializers.Serializer): + foo = serializers.CharField(read_only=True) + + self.MetaSerializer = ReadOnlyMetaSerializer + self.FieldSerializer = ReadOnlyFieldSerializer + + def test_deserialize_is_equivalent(self): + data = { + 'foo': 'bar' + } + meta_serializer = self.MetaSerializer(data=data) + assert meta_serializer.is_valid() + field_serializer = self.FieldSerializer(data=data) + assert field_serializer.is_valid() + + assert 'foo' in meta_serializer.validated_data + assert 'foo' in field_serializer.validated_data + assert meta_serializer.validated_data['foo'] == field_serializer.validated_data['foo']