From 2bf563d5b6964f63b7dbcca50e5736f3ce72d515 Mon Sep 17 00:00:00 2001 From: Vincent Delaitre Date: Mon, 15 Oct 2018 13:56:36 +0200 Subject: [PATCH] Add test --- tests/test_serializer.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/test_serializer.py b/tests/test_serializer.py index 0650b7c5701..86004752e30 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -613,3 +613,29 @@ class Grandchild(Child): assert len(Parent().get_fields()) == 2 assert len(Child().get_fields()) == 2 assert len(Grandchild().get_fields()) == 2 + + +class Test5922Regression: + from django.contrib.gis.geos.point import Point + + def setup(self): + + # Declares a serializer that converts data into an object + class NestedPointSerializer(serializers.Serializer): + longitude = serializers.FloatField(source='x') + latitude = serializers.FloatField(source='y') + + def to_internal_value(self, data): + kwargs = super(NestedPointSerializer, self).to_internal_value(data) + return Test5922Regression.Point(srid=4326, **kwargs) + + self.Serializer = NestedPointSerializer + + def test_5922_regression(self): + serializer = self.Serializer(data={'longitude': 6.958307, 'latitude': 50.941357}) + assert serializer.is_valid() + assert isinstance(serializer.validated_data, Test5922Regression.Point) + assert serializer.validated_data.srid == 4326 + assert serializer.validated_data.coords[0] == 6.958307 + assert serializer.validated_data.coords[1] == 50.941357 + assert serializer.errors == {}