From 6d84cb7d3beb9bbe0b5338a3cfe20e08a4bdd237 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Thu, 10 Oct 2019 23:07:38 -0700 Subject: [PATCH] Expand declared filtering tests - Test declared filter ordering - Test multiple inheritance --- tests/test_serializer.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/test_serializer.py b/tests/test_serializer.py index 0d4b50c1dd..af786158b5 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -682,3 +682,39 @@ class Grandchild(Child): assert len(Parent().get_fields()) == 2 assert len(Child().get_fields()) == 2 assert len(Grandchild().get_fields()) == 2 + + def test_multiple_inheritance(self): + class A(serializers.Serializer): + field = serializers.CharField() + + class B(serializers.Serializer): + field = serializers.IntegerField() + + class TestSerializer(A, B): + pass + + fields = { + name: type(f) for name, f + in TestSerializer()._declared_fields.items() + } + assert fields == { + 'field': serializers.CharField + } + + def test_field_ordering(self): + class Base(serializers.Serializer): + f1 = serializers.CharField() + f2 = serializers.CharField() + + class A(Base): + f3 = serializers.CharField() + + class B(serializers.Serializer): + f4 = serializers.CharField() + + class TestSerializer(A, B): + f2 = serializers.CharField() + f5 = serializers.CharField() + + field_names = list(TestSerializer()._declared_fields) + assert field_names == ['f1', 'f2', 'f3', 'f4', 'f5']