MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_cyclical

Method test_cyclical

test/orm/test_subquery_relations.py:895–928  ·  view source on GitHub ↗

A circular eager relationship breaks the cycle with a lazy loader

(self)

Source from the content-addressed store, hash-verified

893 )
894
895 def test_cyclical(self):
896 """A circular eager relationship breaks the cycle with a lazy loader"""
897
898 Address, addresses, users, User = (
899 self.classes.Address,
900 self.tables.addresses,
901 self.tables.users,
902 self.classes.User,
903 )
904
905 self.mapper_registry.map_imperatively(Address, addresses)
906 self.mapper_registry.map_imperatively(
907 User,
908 users,
909 properties=dict(
910 addresses=relationship(
911 Address,
912 lazy="subquery",
913 backref=sa.orm.backref("user", lazy="subquery"),
914 order_by=Address.id,
915 )
916 ),
917 )
918 is_(
919 sa.orm.class_mapper(User).get_property("addresses").lazy,
920 "subquery",
921 )
922 is_(sa.orm.class_mapper(Address).get_property("user").lazy, "subquery")
923
924 sess = fixture_session()
925 eq_(
926 self.static.user_address_result,
927 sess.query(User).order_by(User.id).all(),
928 )
929
930 def test_cyclical_explicit_join_depth(self):
931 """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