(self, use_load)
| 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 |
no test coverage detected