From 35e3563e7a76d2d1d1322a58931865934fd3dc4b Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Wed, 2 Nov 2016 22:26:52 +0100 Subject: [PATCH] Add test showing error --- tests/test_model_serializer.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index 06848302f..aadeef3e3 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -41,6 +41,10 @@ class OneFieldModel(models.Model): char_field = models.CharField(max_length=100) +class ExtendedModel(OneFieldModel): + text_field = models.TextField(max_length=100) + + class RegularFieldsModel(models.Model): """ A model class for testing regular flat fields. @@ -141,6 +145,26 @@ class TestModelSerializer(TestCase): msginitial = 'Cannot use ModelSerializer with Abstract Models.' assert str(excinfo.exception).startswith(msginitial) + def test_inheritance(self): + """ + Check serializer contains only correct fields + """ + class TestSerializer(serializers.ModelSerializer): + + class Meta: + model = ExtendedModel + fields = '__all__' + + instance = ExtendedModel.objects.create( + char_field="An Instance", + text_field="""To check only the two fields plus id are present in data""" + ) + + serializer = TestSerializer(instance) + data = serializer.data + assert len(data.keys()) == 3 + assert data.keys() == ['id', 'char_field', 'text_field',] + class TestRegularFieldMappings(TestCase): def test_regular_fields(self):