MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_path_entity

Method test_path_entity

test/orm/test_deferred.py:1287–1335  ·  view source on GitHub ↗

r"""test the legacy \*addl_attrs argument.

(self)

Source from the content-addressed store, hash-verified

1285 eq_(obj.orders[0].description, "order 2")
1286
1287 def test_path_entity(self):
1288 r"""test the legacy \*addl_attrs argument."""
1289
1290 User = self.classes.User
1291 Order = self.classes.Order
1292 Item = self.classes.Item
1293
1294 users = self.tables.users
1295 orders = self.tables.orders
1296 items = self.tables.items
1297 order_items = self.tables.order_items
1298
1299 self.mapper_registry.map_imperatively(
1300 User,
1301 users,
1302 properties={"orders": relationship(Order, lazy="joined")},
1303 )
1304 self.mapper_registry.map_imperatively(
1305 Order,
1306 orders,
1307 properties={
1308 "items": relationship(
1309 Item, secondary=order_items, lazy="joined"
1310 )
1311 },
1312 )
1313 self.mapper_registry.map_imperatively(Item, items)
1314
1315 sess = fixture_session()
1316
1317 exp = (
1318 "SELECT users.id AS users_id, users.name AS users_name, "
1319 "items_1.id AS items_1_id, orders_1.id AS orders_1_id, "
1320 "orders_1.user_id AS orders_1_user_id, orders_1.address_id "
1321 "AS orders_1_address_id, orders_1.description AS "
1322 "orders_1_description, orders_1.isopen AS orders_1_isopen "
1323 "FROM users LEFT OUTER JOIN orders AS orders_1 "
1324 "ON users.id = orders_1.user_id LEFT OUTER JOIN "
1325 "(order_items AS order_items_1 JOIN items AS items_1 "
1326 "ON items_1.id = order_items_1.item_id) "
1327 "ON orders_1.id = order_items_1.order_id"
1328 )
1329
1330 q = sess.query(User).options(
1331 defaultload(User.orders)
1332 .defaultload(Order.items)
1333 .defer(Item.description)
1334 )
1335 self.assert_compile(q, exp)
1336
1337 def test_chained_multi_col_options(self):
1338 users, User = self.tables.users, self.classes.User

Callers

nothing calls this directly

Calls 9

relationshipFunction · 0.90
fixture_sessionFunction · 0.90
defaultloadFunction · 0.90
map_imperativelyMethod · 0.80
deferMethod · 0.80
defaultloadMethod · 0.80
assert_compileMethod · 0.80
optionsMethod · 0.45
queryMethod · 0.45

Tested by

no test coverage detected