diff options
Diffstat (limited to 'test/sql/test_text.py')
-rw-r--r-- | test/sql/test_text.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/sql/test_text.py b/test/sql/test_text.py index 58de41709..1a7ee6f34 100644 --- a/test/sql/test_text.py +++ b/test/sql/test_text.py @@ -15,6 +15,7 @@ from sqlalchemy import MetaData from sqlalchemy import select from sqlalchemy import String from sqlalchemy import Table +from sqlalchemy import testing from sqlalchemy import text from sqlalchemy import union from sqlalchemy import util @@ -710,6 +711,25 @@ class OrderByLabelResolutionTest(fixtures.TestBase, AssertsCompiledSQL): "FROM mytable AS mytable_1 ORDER BY mytable_1.name", ) + @testing.combinations( + ((column("q") + 5).label("a"), "a", ()), + (column("q").op("+")(5).label("a"), "a", ()), + ((column("q") + 5).label("a"), "a DESC", (desc,)), + (column("q").op("+")(5).label("a"), "a DESC", (desc,)), + ) + def test_order_by_expr(self, case, expected, modifiers): + + order_by = case + for mod in modifiers: + order_by = mod(order_by) + + stmt = select([case]).order_by(order_by) + + col_expr = str(case) + self.assert_compile( + stmt, "SELECT %s AS a ORDER BY %s" % (col_expr, expected) + ) + def test_order_by_named_label_from_anon_label(self): s1 = select([table1.c.myid.label(None).label("foo"), table1.c.name]) stmt = s1.order_by("foo") |