From: Mike Bayer Date: Sat, 3 Jan 2009 20:06:53 +0000 (+0000) Subject: added order_by test coverage as per [ticket:1218] X-Git-Tag: rel_0_5_0~17 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9b89103394fb90f92763f66de7624ff8bbbe0a58;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git added order_by test coverage as per [ticket:1218] --- diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index c61c8d04c8..a4e9275e71 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -1756,6 +1756,7 @@ class _MapperEntity(_QueryEntity): if context.order_by is False and self.mapper.order_by: context.order_by = self.mapper.order_by + # apply adaptation to the mapper's order_by if needed. if adapter: context.order_by = adapter.adapt_list(util.to_list(context.order_by)) diff --git a/test/orm/query.py b/test/orm/query.py index 284ddd1944..b446c1ae5a 100644 --- a/test/orm/query.py +++ b/test/orm/query.py @@ -713,6 +713,7 @@ class FilterTest(QueryTest): self.assertEquals([User(id=10)], sess.query(User).filter(User.addresses==None).all()) self.assertEquals([User(id=7),User(id=8),User(id=9)], sess.query(User).filter(User.addresses!=None).order_by(User.id).all()) + class FromSelfTest(QueryTest): def test_filter(self): @@ -1214,6 +1215,23 @@ class JoinTest(QueryTest): assert q.count() == 1 assert [User(id=7)] == q.all() + def test_aliased_order_by(self): + sess = create_session() + + ualias = aliased(User) + self.assertEquals( + sess.query(User, ualias).filter(User.id > ualias.id).order_by(desc(ualias.id), User.name).all(), + [ + (User(id=10,name=u'chuck'), User(id=9,name=u'fred')), + (User(id=10,name=u'chuck'), User(id=8,name=u'ed')), + (User(id=9,name=u'fred'), User(id=8,name=u'ed')), + (User(id=10,name=u'chuck'), User(id=7,name=u'jack')), + (User(id=8,name=u'ed'), User(id=7,name=u'jack')), + (User(id=9,name=u'fred'), User(id=7,name=u'jack')) + ] + ) + + class MultiplePathTest(ORMTest): def define_tables(self, metadata): global t1, t2, t1t2_1, t1t2_2 @@ -1980,6 +1998,8 @@ class SelectFromTest(QueryTest): ) def test_join_mapper_order_by(self): + """test that mapper-level order_by is adapted to a selectable.""" + mapper(User, users, order_by=users.c.id) sel = users.select(users.c.id.in_([7, 8]))