]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
added order_by test coverage as per [ticket:1218]
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 3 Jan 2009 20:06:53 +0000 (20:06 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 3 Jan 2009 20:06:53 +0000 (20:06 +0000)
lib/sqlalchemy/orm/query.py
test/orm/query.py

index c61c8d04c829c930c683ac8d67acc1bd74d278ec..a4e9275e71d261edb12617389029d3ae94d30cdc 100644 (file)
@@ -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))
                     
index 284ddd1944ba7076d2c4cb1403290a5a99da3cb0..b446c1ae5afa1fbb2eb7d5d3487db7dcbf297190 100644 (file)
@@ -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]))