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

Method test_map_field_reference

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

Source from the content-addressed store, hash-verified

696 Group.drop_collection()
697
698 def test_map_field_reference(self):
699 class User(Document):
700 name = StringField()
701
702 class Group(Document):
703 members = MapField(ReferenceField(User))
704
705 User.drop_collection()
706 Group.drop_collection()
707
708 members = []
709 for i in range(1, 51):
710 user = User(name="user %s" % i)
711 user.save()
712 members.append(user)
713
714 group = Group(members={str(u.id): u for u in members})
715 group.save()
716
717 group = Group(members={str(u.id): u for u in members})
718 group.save()
719
720 with query_counter() as q:
721 assert q == 0
722
723 group_obj = Group.objects.first()
724 assert q == 1
725
726 _ = [m for m in group_obj.members]
727 assert q == 2
728
729 for _, m in group_obj.members.items():
730 assert isinstance(m, User)
731
732 # Document select_related
733 with query_counter() as q:
734 assert q == 0
735
736 group_obj = Group.objects.first().select_related()
737 assert q == 2
738
739 _ = [m for m in group_obj.members]
740 assert q == 2
741
742 for k, m in group_obj.members.items():
743 assert isinstance(m, User)
744
745 # Queryset select_related
746 with query_counter() as q:
747 assert q == 0
748
749 group_objs = Group.objects.select_related()
750 assert q == 2
751
752 for group_obj in group_objs:
753 _ = [m for m in group_obj.members]
754 assert q == 2
755

Callers

nothing calls this directly

Calls 8

query_counterClass · 0.90
drop_collectionMethod · 0.80
itemsMethod · 0.80
UserClass · 0.70
GroupClass · 0.70
saveMethod · 0.45
firstMethod · 0.45
select_relatedMethod · 0.45

Tested by

no test coverage detected