From 2958d3718050d316b0daed0b0e601e7c5be79a5f Mon Sep 17 00:00:00 2001 From: Alex Louden Date: Tue, 29 Apr 2014 16:22:49 +0800 Subject: [PATCH] Recreate bug - id is serialised as a string not as an integer as expected --- rest_framework/tests/test_serializer.py | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/rest_framework/tests/test_serializer.py b/rest_framework/tests/test_serializer.py index e688c8239..2db6f4f39 100644 --- a/rest_framework/tests/test_serializer.py +++ b/rest_framework/tests/test_serializer.py @@ -1971,3 +1971,30 @@ class BoolenFieldTypeTest(TestCase): ''' bfield = self.serializer.get_fields()['started'] self.assertEqual(type(bfield), fields.BooleanField) + + +class IntegerFieldWithSourceTest(TestCase): + ''' + Ensure that IntegerFields with a source kwarg are returned as integers not strings + + ''' + + def setUp(self): + + class Obj(object): + pass + + obj = Obj() + obj.pk = '1' + + class IntegerWithSourceSerializer(serializers.Serializer): + id = serializers.IntegerField(source='pk') + + self.serializer = IntegerWithSourceSerializer(instance=obj) + + def test_integerfield_type(self): + ''' + Test that id field is an integer + ''' + data = self.serializer.data + self.assertEqual(type(data['id']), int)