| 1616 | ) |
| 1617 | |
| 1618 | def test_overlap_with_aliases(self): |
| 1619 | orders, User, users = ( |
| 1620 | self.tables.orders, |
| 1621 | self.classes.User, |
| 1622 | self.tables.users, |
| 1623 | ) |
| 1624 | Order = self.classes.Order |
| 1625 | |
| 1626 | oalias = orders.alias("oalias") |
| 1627 | |
| 1628 | result = ( |
| 1629 | fixture_session() |
| 1630 | .query(User) |
| 1631 | .select_from(users.join(oalias)) |
| 1632 | .filter( |
| 1633 | oalias.c.description.in_(["order 1", "order 2", "order 3"]) |
| 1634 | ) |
| 1635 | .join(User.orders) |
| 1636 | .join(Order.items) |
| 1637 | .order_by(User.id) |
| 1638 | .all() |
| 1639 | ) |
| 1640 | assert [User(id=7, name="jack"), User(id=9, name="fred")] == result |
| 1641 | |
| 1642 | result = ( |
| 1643 | fixture_session() |
| 1644 | .query(User) |
| 1645 | .select_from(users.join(oalias)) |
| 1646 | .filter( |
| 1647 | oalias.c.description.in_(["order 1", "order 2", "order 3"]) |
| 1648 | ) |
| 1649 | .join(User.orders) |
| 1650 | .join(Order.items) |
| 1651 | .filter_by(id=4) |
| 1652 | .all() |
| 1653 | ) |
| 1654 | assert [User(id=7, name="jack")] == result |
| 1655 | |
| 1656 | def test_aliased_order_by(self): |
| 1657 | User = self.classes.User |