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

Method test_cyclical

test/orm/test_eager_relations.py:939–969  ·  view source on GitHub ↗

A circular eager relationship breaks the cycle with a lazy loader

(self)

Source from the content-addressed store, hash-verified

937 self.assert_sql_count(testing.db, go, 1)
938
939 def test_cyclical(self):
940 """A circular eager relationship breaks the cycle with a lazy loader"""
941
942 Address, addresses, users, User = (
943 self.classes.Address,
944 self.tables.addresses,
945 self.tables.users,
946 self.classes.User,
947 )
948
949 self.mapper_registry.map_imperatively(Address, addresses)
950 self.mapper_registry.map_imperatively(
951 User,
952 users,
953 properties=dict(
954 addresses=relationship(
955 Address,
956 lazy="joined",
957 backref=sa.orm.backref("user", lazy="joined"),
958 order_by=Address.id,
959 )
960 ),
961 )
962 eq_(sa.orm.class_mapper(User).get_property("addresses").lazy, "joined")
963 eq_(sa.orm.class_mapper(Address).get_property("user").lazy, "joined")
964
965 sess = fixture_session()
966 eq_(
967 self.static.user_address_result,
968 sess.query(User).order_by(User.id).all(),
969 )
970
971 def test_double_w_ac(self):
972 """Eager loading with two relationships simultaneously,

Callers

nothing calls this directly

Calls 8

relationshipFunction · 0.90
eq_Function · 0.90
fixture_sessionFunction · 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