summaryrefslogtreecommitdiff
path: root/test/sql/query.py
diff options
context:
space:
mode:
authorJason Kirtland <jek@discorporate.us>2007-10-11 22:21:33 +0000
committerJason Kirtland <jek@discorporate.us>2007-10-11 22:21:33 +0000
commitd174b3bd7212c7cb98671a4dff88325e68cbfb89 (patch)
tree82d825237c5b6486f2740c0934a94ecf801c6110 /test/sql/query.py
parentc1a8db67917ad8a9e467afcc01a36cb821834b88 (diff)
downloadsqlalchemy-d174b3bd7212c7cb98671a4dff88325e68cbfb89.tar.gz
Added query coverage for ORDER BY over regular, aliased and DISTINCT columns.
Diffstat (limited to 'test/sql/query.py')
-rw-r--r--test/sql/query.py38
1 files changed, 37 insertions, 1 deletions
diff --git a/test/sql/query.py b/test/sql/query.py
index 78d2990ed..470d11a29 100644
--- a/test/sql/query.py
+++ b/test/sql/query.py
@@ -271,7 +271,43 @@ class QueryTest(PersistTest):
assert isinstance(s2.execute().fetchone()['somelabel'], datetime.datetime)
finally:
datetable.drop()
-
+
+ def test_order_by(self):
+ users.insert().execute(user_id=1, user_name='c')
+ users.insert().execute(user_id=2, user_name='b')
+ users.insert().execute(user_id=3, user_name='a')
+
+ def a_eq(executable, wanted):
+ got = list(executable.execute())
+ self.assertEquals(got, wanted)
+
+ a_eq(users.select(order_by=[users.c.user_id]),
+ [(1, 'c'), (2, 'b'), (3, 'a')])
+
+ a_eq(users.select(order_by=[users.c.user_name, users.c.user_id]),
+ [(3, 'a'), (2, 'b'), (1, 'c')])
+
+ a_eq(select([users.c.user_id.label('foo')], order_by=[users.c.user_id]),
+ [(1,), (2,), (3,)])
+
+ a_eq(select([users.c.user_id.label('foo'), users.c.user_name],
+ order_by=[users.c.user_name, users.c.user_id]),
+ [(3, 'a'), (2, 'b'), (1, 'c')])
+
+ a_eq(users.select(distinct=True, order_by=[users.c.user_id]),
+ [(1, 'c'), (2, 'b'), (3, 'a')])
+
+ a_eq(select([users.c.user_id.label('foo')],
+ distinct=True,
+ order_by=[users.c.user_id]),
+ [(1,), (2,), (3,)])
+
+ a_eq(select([users.c.user_id.label('a'),
+ users.c.user_id.label('b'),
+ users.c.user_name],
+ order_by=[users.c.user_id]),
+ [(1, 1, 'c'), (2, 2, 'b'), (3, 3, 'a')])
+
def test_column_accessor(self):
users.insert().execute(user_id=1, user_name='john')
users.insert().execute(user_id=2, user_name='jack')