MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_manytoone_limit

Method test_manytoone_limit

test/orm/test_eager_relations.py:1728–1914  ·  view source on GitHub ↗

test that the subquery wrapping only occurs with limit/offset and m2m or o2m joins present.

(self)

Source from the content-addressed store, hash-verified

1726 )
1727
1728 def test_manytoone_limit(self):
1729 """test that the subquery wrapping only occurs with
1730 limit/offset and m2m or o2m joins present."""
1731
1732 (
1733 users,
1734 items,
1735 order_items,
1736 Order,
1737 Item,
1738 User,
1739 Address,
1740 orders,
1741 addresses,
1742 ) = (
1743 self.tables.users,
1744 self.tables.items,
1745 self.tables.order_items,
1746 self.classes.Order,
1747 self.classes.Item,
1748 self.classes.User,
1749 self.classes.Address,
1750 self.tables.orders,
1751 self.tables.addresses,
1752 )
1753
1754 self.mapper_registry.map_imperatively(
1755 User,
1756 users,
1757 properties=odict(orders=relationship(Order, backref="user")),
1758 )
1759 self.mapper_registry.map_imperatively(
1760 Order,
1761 orders,
1762 properties=odict(
1763 [
1764 (
1765 "items",
1766 relationship(
1767 Item, secondary=order_items, backref="orders"
1768 ),
1769 ),
1770 ("address", relationship(Address)),
1771 ]
1772 ),
1773 )
1774 self.mapper_registry.map_imperatively(Address, addresses)
1775 self.mapper_registry.map_imperatively(Item, items)
1776
1777 sess = fixture_session()
1778
1779 self.assert_compile(
1780 sess.query(User).options(joinedload(User.orders)).limit(10),
1781 "SELECT anon_1.users_id AS anon_1_users_id, anon_1.users_name "
1782 "AS anon_1_users_name, orders_1.id AS orders_1_id, "
1783 "orders_1.user_id AS orders_1_user_id, orders_1.address_id "
1784 "AS orders_1_address_id, orders_1.description AS "
1785 "orders_1_description, orders_1.isopen AS orders_1_isopen "

Callers

nothing calls this directly

Calls 9

relationshipFunction · 0.90
fixture_sessionFunction · 0.90
joinedloadFunction · 0.90
map_imperativelyMethod · 0.80
assert_compileMethod · 0.80
joinedloadMethod · 0.80
limitMethod · 0.45
optionsMethod · 0.45
queryMethod · 0.45

Tested by

no test coverage detected