MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_deep_options

Method test_deep_options

test/orm/test_deferred.py:1197–1247  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1195 )
1196
1197 def test_deep_options(self):
1198 users, items, order_items, Order, Item, User, orders = (
1199 self.tables.users,
1200 self.tables.items,
1201 self.tables.order_items,
1202 self.classes.Order,
1203 self.classes.Item,
1204 self.classes.User,
1205 self.tables.orders,
1206 )
1207
1208 self.mapper_registry.map_imperatively(
1209 Item,
1210 items,
1211 properties=dict(description=deferred(items.c.description)),
1212 )
1213 self.mapper_registry.map_imperatively(
1214 Order,
1215 orders,
1216 properties=dict(items=relationship(Item, secondary=order_items)),
1217 )
1218 self.mapper_registry.map_imperatively(
1219 User,
1220 users,
1221 properties=dict(orders=relationship(Order, order_by=orders.c.id)),
1222 )
1223
1224 sess = fixture_session()
1225 q = sess.query(User).order_by(User.id)
1226 result = q.all()
1227 item = result[0].orders[1].items[1]
1228
1229 def go():
1230 eq_(item.description, "item 4")
1231
1232 self.sql_count_(1, go)
1233 eq_(item.description, "item 4")
1234
1235 sess.expunge_all()
1236 result = q.options(
1237 defaultload(User.orders)
1238 .defaultload(Order.items)
1239 .undefer(Item.description)
1240 ).all()
1241 item = result[0].orders[1].items[1]
1242
1243 def go():
1244 eq_(item.description, "item 4")
1245
1246 self.sql_count_(0, go)
1247 eq_(item.description, "item 4")
1248
1249 @testing.combinations(
1250 lazyload, joinedload, subqueryload, selectinload, immediateload

Callers

nothing calls this directly

Calls 14

deferredFunction · 0.90
relationshipFunction · 0.90
fixture_sessionFunction · 0.90
eq_Function · 0.90
defaultloadFunction · 0.90
map_imperativelyMethod · 0.80
sql_count_Method · 0.80
undeferMethod · 0.80
defaultloadMethod · 0.80
order_byMethod · 0.45
queryMethod · 0.45
allMethod · 0.45

Tested by

no test coverage detected