(self)
| 760 | Group.drop_collection() |
| 761 | |
| 762 | def test_dict_field(self): |
| 763 | class UserA(Document): |
| 764 | name = StringField() |
| 765 | |
| 766 | class UserB(Document): |
| 767 | name = StringField() |
| 768 | |
| 769 | class UserC(Document): |
| 770 | name = StringField() |
| 771 | |
| 772 | class Group(Document): |
| 773 | members = DictField() |
| 774 | |
| 775 | UserA.drop_collection() |
| 776 | UserB.drop_collection() |
| 777 | UserC.drop_collection() |
| 778 | Group.drop_collection() |
| 779 | |
| 780 | members = [] |
| 781 | for i in range(1, 51): |
| 782 | a = UserA(name="User A %s" % i) |
| 783 | a.save() |
| 784 | |
| 785 | b = UserB(name="User B %s" % i) |
| 786 | b.save() |
| 787 | |
| 788 | c = UserC(name="User C %s" % i) |
| 789 | c.save() |
| 790 | |
| 791 | members += [a, b, c] |
| 792 | |
| 793 | group = Group(members={str(u.id): u for u in members}) |
| 794 | group.save() |
| 795 | group = Group(members={str(u.id): u for u in members}) |
| 796 | group.save() |
| 797 | |
| 798 | with query_counter() as q: |
| 799 | assert q == 0 |
| 800 | |
| 801 | group_obj = Group.objects.first() |
| 802 | assert q == 1 |
| 803 | |
| 804 | _ = [m for m in group_obj.members] |
| 805 | assert q == 4 |
| 806 | |
| 807 | _ = [m for m in group_obj.members] |
| 808 | assert q == 4 |
| 809 | |
| 810 | for k, m in group_obj.members.items(): |
| 811 | assert "User" in m.__class__.__name__ |
| 812 | |
| 813 | # Document select_related |
| 814 | with query_counter() as q: |
| 815 | assert q == 0 |
| 816 | |
| 817 | group_obj = Group.objects.first().select_related() |
| 818 | assert q == 4 |
| 819 |
nothing calls this directly
no test coverage detected