MCPcopy Index your code
hub / github.com/MongoEngine/mongoengine / test_dict_field

Method test_dict_field

tests/test_dereference.py:762–862  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 11

query_counterClass · 0.90
UserAClass · 0.85
UserBClass · 0.85
UserCClass · 0.85
drop_collectionMethod · 0.80
itemsMethod · 0.80
GroupClass · 0.70
saveMethod · 0.45
firstMethod · 0.45
select_relatedMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected