MCPcopy Create free account
hub / github.com/zzzeek/sqlalchemy / _test_load_only_propagate

Method _test_load_only_propagate

test/orm/test_deferred.py:1439–1488  ·  view source on GitHub ↗
(self, use_load)

Source from the content-addressed store, hash-verified

1437 self._test_load_only_propagate(True)
1438
1439 def _test_load_only_propagate(self, use_load):
1440 User = self.classes.User
1441 Address = self.classes.Address
1442
1443 users = self.tables.users
1444 addresses = self.tables.addresses
1445
1446 self.mapper_registry.map_imperatively(
1447 User, users, properties={"addresses": relationship(Address)}
1448 )
1449 self.mapper_registry.map_imperatively(Address, addresses)
1450
1451 sess = fixture_session()
1452 expected = [
1453 (
1454 "SELECT users.id AS users_id, users.name AS users_name "
1455 "FROM users WHERE users.id IN (__[POSTCOMPILE_id_1])",
1456 {"id_1": [7, 8]},
1457 ),
1458 (
1459 "SELECT addresses.id, "
1460 "addresses.email_address "
1461 "FROM addresses WHERE :param_1 = addresses.user_id",
1462 {"param_1": 7},
1463 ),
1464 (
1465 "SELECT addresses.id, "
1466 "addresses.email_address "
1467 "FROM addresses WHERE :param_1 = addresses.user_id",
1468 {"param_1": 8},
1469 ),
1470 ]
1471
1472 if use_load:
1473 opt = (
1474 Load(User)
1475 .defaultload(User.addresses)
1476 .load_only(Address.id, Address.email_address)
1477 )
1478 else:
1479 opt = defaultload(User.addresses).load_only(
1480 Address.id, Address.email_address
1481 )
1482 q = sess.query(User).options(opt).filter(User.id.in_([7, 8]))
1483
1484 def go():
1485 for user in q:
1486 user.addresses
1487
1488 self.sql_eq_(go, expected)
1489
1490 def test_load_only_parent_specific(self):
1491 User = self.classes.User

Calls 12

relationshipFunction · 0.90
fixture_sessionFunction · 0.90
LoadClass · 0.90
defaultloadFunction · 0.90
map_imperativelyMethod · 0.80
load_onlyMethod · 0.80
defaultloadMethod · 0.80
sql_eq_Method · 0.80
filterMethod · 0.45
optionsMethod · 0.45
queryMethod · 0.45
in_Method · 0.45

Tested by

no test coverage detected