@@ -682,3 +682,39 @@ class Grandchild(Child):
682
682
assert len (Parent ().get_fields ()) == 2
683
683
assert len (Child ().get_fields ()) == 2
684
684
assert len (Grandchild ().get_fields ()) == 2
685
+
686
+ def test_multiple_inheritance (self ):
687
+ class A (serializers .Serializer ):
688
+ field = serializers .CharField ()
689
+
690
+ class B (serializers .Serializer ):
691
+ field = serializers .IntegerField ()
692
+
693
+ class TestSerializer (A , B ):
694
+ pass
695
+
696
+ fields = {
697
+ name : type (f ) for name , f
698
+ in TestSerializer ()._declared_fields .items ()
699
+ }
700
+ assert fields == {
701
+ 'field' : serializers .CharField
702
+ }
703
+
704
+ def test_field_ordering (self ):
705
+ class Base (serializers .Serializer ):
706
+ f1 = serializers .CharField ()
707
+ f2 = serializers .CharField ()
708
+
709
+ class A (Base ):
710
+ f3 = serializers .CharField ()
711
+
712
+ class B (serializers .Serializer ):
713
+ f4 = serializers .CharField ()
714
+
715
+ class TestSerializer (A , B ):
716
+ f2 = serializers .CharField ()
717
+ f5 = serializers .CharField ()
718
+
719
+ field_names = list (TestSerializer ()._declared_fields )
720
+ assert field_names == ['f1' , 'f2' , 'f3' , 'f4' , 'f5' ]
0 commit comments