Test that meta fields cannot be declared as None · encode/django-rest-framework@478fe0a (original) (raw)

`@@ -7,6 +7,8 @@

`

7

7

``

8

8

`import pytest

`

9

9

``

``

10

`+

from django.db import models

`

``

11

+

10

12

`from rest_framework import fields, relations, serializers

`

11

13

`from rest_framework.compat import unicode_repr

`

12

14

`from rest_framework.fields import Field

`

`@@ -430,3 +432,25 @@ class Grandchild(Child):

`

430

432

`assert len(Parent._declared_fields) == 2

`

431

433

`assert len(Child._declared_fields) == 1

`

432

434

`assert len(Grandchild._declared_fields) == 1

`

``

435

+

``

436

`+

def test_meta_field_disabling(self):

`

``

437

`+

Declaratively setting a field on a child class will not prevent

`

``

438

`+

the ModelSerializer from generating a default field.

`

``

439

`+

class MyModel(models.Model):

`

``

440

`+

f1 = models.CharField(max_length=10)

`

``

441

`+

f2 = models.CharField(max_length=10)

`

``

442

+

``

443

`+

class Parent(serializers.ModelSerializer):

`

``

444

`+

class Meta:

`

``

445

`+

model = MyModel

`

``

446

`+

fields = ['f1', 'f2']

`

``

447

+

``

448

`+

class Child(Parent):

`

``

449

`+

f1 = None

`

``

450

+

``

451

`+

class Grandchild(Child):

`

``

452

`+

pass

`

``

453

+

``

454

`+

assert len(Parent().get_fields()) == 2

`

``

455

`+

assert len(Child().get_fields()) == 2

`

``

456

`+

assert len(Grandchild().get_fields()) == 2

`