MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / test_cyclical

Method test_cyclical

test/orm/test_selectin_relations.py:787–820  ·  view source on GitHub ↗

A circular eager relationship breaks the cycle with a lazy loader

(self)

Source from the content-addressed store, hash-verified

785 )
786
787 def test_cyclical(self):
788 """A circular eager relationship breaks the cycle with a lazy loader"""
789
790 Address, addresses, users, User = (
791 self.classes.Address,
792 self.tables.addresses,
793 self.tables.users,
794 self.classes.User,
795 )
796
797 self.mapper_registry.map_imperatively(Address, addresses)
798 self.mapper_registry.map_imperatively(
799 User,
800 users,
801 properties=dict(
802 addresses=relationship(
803 Address,
804 lazy="selectin",
805 backref=sa.orm.backref("user", lazy="selectin"),
806 order_by=Address.id,
807 )
808 ),
809 )
810 is_(
811 sa.orm.class_mapper(User).get_property("addresses").lazy,
812 "selectin",
813 )
814 is_(sa.orm.class_mapper(Address).get_property("user").lazy, "selectin")
815
816 sess = fixture_session()
817 eq_(
818 self.static.user_address_result,
819 sess.query(User).order_by(User.id).all(),
820 )
821
822 def test_cyclical_explicit_join_depth(self):
823 """A circular eager relationship breaks the cycle with a lazy loader"""

Callers

nothing calls this directly

Calls 9

relationshipFunction · 0.90
is_Function · 0.90
fixture_sessionFunction · 0.90
eq_Function · 0.90
map_imperativelyMethod · 0.80
get_propertyMethod · 0.80
allMethod · 0.45
order_byMethod · 0.45
queryMethod · 0.45

Tested by

no test coverage detected