From: Jason Kirtland Date: Thu, 11 Oct 2007 22:21:33 +0000 (+0000) Subject: Added query coverage for ORDER BY over regular, aliased and DISTINCT columns. X-Git-Tag: rel_0_4_0~41 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d174b3bd7212c7cb98671a4dff88325e68cbfb89;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Added query coverage for ORDER BY over regular, aliased and DISTINCT columns. --- diff --git a/test/sql/query.py b/test/sql/query.py index 78d2990ed8..470d11a299 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')