Skip to content

Commit 6cdf8fb

Browse files
committed
Override save instead of to_internal_value
Previously it was relying on the fact that `save` was later calling `to_internal_value`, which was then passing the instance to the children. Now if in the future `PolymorphicModelSerializer` initialises the children serializers at a different point, this test will remain relevant
1 parent 0edfa5a commit 6cdf8fb

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

example/tests/test_serializers.py

+9-10
Original file line numberDiff line numberDiff line change
@@ -207,20 +207,21 @@ def setUp(self):
207207
def test_polymorphic_model_serializer_passes_instance_to_child(self):
208208
"""
209209
Ensure that `PolymorphicModelSerializer` is passing the instance to the
210-
child serializer when initializing it in `to_internal_value`
210+
child serializer when initializing them
211211
"""
212212
# Arrange
213-
def to_internal_value(serializer_self, data):
213+
self.serializer_instance = None
214+
215+
def save(serializer_self):
214216
"""
215-
Override `ArtProjectSerializer.to_internal_value` to get the
216-
instance serializer, which is later used assertion
217+
Override `ArtProjectSerializer.save` to get the instance serializer,
218+
which is later used assertion
217219
"""
218220
self.serializer_instance = serializer_self.instance
219-
return super(ArtProjectSerializer,
220-
serializer_self).to_internal_value(data)
221+
return super(ArtProjectSerializer, serializer_self).save()
221222

222-
# Override `to_internal_value` with our own method
223-
ArtProjectSerializer.to_internal_value = to_internal_value
223+
# Override `save` with our own method
224+
ArtProjectSerializer.save = save
224225

225226
# Initialize a serializer that would partially update a model instance
226227
data = {"artist": "Mark Bishop", "type": "artProjects"}
@@ -229,8 +230,6 @@ def to_internal_value(serializer_self, data):
229230
)
230231
serializer.is_valid(raise_exception=True)
231232

232-
self.serializer_instance = None
233-
234233
# Act
235234
serializer.save()
236235

0 commit comments

Comments
 (0)