Skip to content

Commit 6d84cb7

Browse files
committed
Expand declared filtering tests
- Test declared filter ordering - Test multiple inheritance
1 parent e57c150 commit 6d84cb7

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

tests/test_serializer.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -682,3 +682,39 @@ class Grandchild(Child):
682682
assert len(Parent().get_fields()) == 2
683683
assert len(Child().get_fields()) == 2
684684
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

Comments
 (0)