diff options
Diffstat (limited to 'test/orm/test_froms.py')
| -rw-r--r-- | test/orm/test_froms.py | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/test/orm/test_froms.py b/test/orm/test_froms.py index 1a972d965..2403f4aae 100644 --- a/test/orm/test_froms.py +++ b/test/orm/test_froms.py @@ -1929,7 +1929,8 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): def test_more_joins(self): - users, Keyword, orders, items, order_items, Order, Item, User, keywords, item_keywords = (self.tables.users, + users, Keyword, orders, items, order_items, Order, Item, \ + User, keywords, item_keywords = (self.tables.users, self.classes.Keyword, self.tables.orders, self.tables.items, @@ -1972,6 +1973,36 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): User(name='jack',id=7) ]) + def test_very_nested_joins_with_joinedload(self): + users, Keyword, orders, items, order_items, Order, Item, \ + User, keywords, item_keywords = (self.tables.users, + self.classes.Keyword, + self.tables.orders, + self.tables.items, + self.tables.order_items, + self.classes.Order, + self.classes.Item, + self.classes.User, + self.tables.keywords, + self.tables.item_keywords) + + mapper(User, users, properties={ + 'orders':relationship(Order, backref='user'), # o2m, m2o + }) + mapper(Order, orders, properties={ + 'items':relationship(Item, secondary=order_items, + order_by=items.c.id), #m2m + }) + mapper(Item, items, properties={ + 'keywords':relationship(Keyword, secondary=item_keywords, + order_by=keywords.c.id) #m2m + }) + mapper(Keyword, keywords) + + sess = create_session() + + sel = users.select(users.c.id.in_([7, 8])) + def go(): eq_( sess.query(User).select_entity_from(sel). |
