@@ -159,6 +159,32 @@ def to_internal_value(self, data):
159
159
160
160
self .Serializer = ExampleSerializer
161
161
162
+ def test_abstract_methods_raise_proper_errors (self ):
163
+ serializer = serializers .BaseSerializer ()
164
+ with pytest .raises (NotImplementedError ):
165
+ serializer .to_internal_value (None )
166
+ with pytest .raises (NotImplementedError ):
167
+ serializer .to_representation (None )
168
+ with pytest .raises (NotImplementedError ):
169
+ serializer .update (None , None )
170
+ with pytest .raises (NotImplementedError ):
171
+ serializer .create (None )
172
+
173
+ def test_access_to_data_attribute_before_validation_raises_error (self ):
174
+ serializer = serializers .BaseSerializer (data = {'foo' : 'bar' })
175
+ with pytest .raises (AssertionError ):
176
+ serializer .data
177
+
178
+ def test_access_to_errors_attribute_before_validation_raises_error (self ):
179
+ serializer = serializers .BaseSerializer (data = {'foo' : 'bar' })
180
+ with pytest .raises (AssertionError ):
181
+ serializer .errors
182
+
183
+ def test_access_to_validated_data_attribute_before_validation_raises_error (self ):
184
+ serializer = serializers .BaseSerializer (data = {'foo' : 'bar' })
185
+ with pytest .raises (AssertionError ):
186
+ serializer .validated_data
187
+
162
188
def test_serialize_instance (self ):
163
189
instance = {'id' : 1 , 'name' : 'tom' , 'domain' : 'example.com' }
164
190
serializer = self .Serializer (instance )
0 commit comments