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

Method test_list_field_complex

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

Source from the content-addressed store, hash-verified

606 Group.drop_collection()
607
608 def test_list_field_complex(self):
609 class UserA(Document):
610 name = StringField()
611
612 class UserB(Document):
613 name = StringField()
614
615 class UserC(Document):
616 name = StringField()
617
618 class Group(Document):
619 members = ListField()
620
621 UserA.drop_collection()
622 UserB.drop_collection()
623 UserC.drop_collection()
624 Group.drop_collection()
625
626 members = []
627 for i in range(1, 51):
628 a = UserA(name="User A %s" % i)
629 a.save()
630
631 b = UserB(name="User B %s" % i)
632 b.save()
633
634 c = UserC(name="User C %s" % i)
635 c.save()
636
637 members += [a, b, c]
638
639 group = Group(members=members)
640 group.save()
641
642 group = Group(members=members)
643 group.save()
644
645 with query_counter() as q:
646 assert q == 0
647
648 group_obj = Group.objects.first()
649 assert q == 1
650
651 _ = [m for m in group_obj.members]
652 assert q == 4
653
654 _ = [m for m in group_obj.members]
655 assert q == 4
656
657 for m in group_obj.members:
658 assert "User" in m.__class__.__name__
659
660 # Document select_related
661 with query_counter() as q:
662 assert q == 0
663
664 group_obj = Group.objects.first().select_related()
665 assert q == 4

Callers

nothing calls this directly

Calls 9

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

Tested by

no test coverage detected