diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2020-07-07 18:58:18 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2020-07-07 18:58:18 +0000 |
| commit | a6d8b674e92ef1cabdb2ab85490397f3ed12a42c (patch) | |
| tree | da1bc2912b3465939bee40a5f649053977ca85c7 /test/sql | |
| parent | bcb2421e9faaab8ce48e2731b9a2f7411204f393 (diff) | |
| parent | 6eea9ca437084feae6a7b00276547e70ef6b40ad (diff) | |
| download | sqlalchemy-a6d8b674e92ef1cabdb2ab85490397f3ed12a42c.tar.gz | |
Merge "ensure we unwrap desc() /label() all the way w/ order by"
Diffstat (limited to 'test/sql')
| -rw-r--r-- | test/sql/test_utils.py | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/test/sql/test_utils.py b/test/sql/test_utils.py index d68a74475..676ad4298 100644 --- a/test/sql/test_utils.py +++ b/test/sql/test_utils.py @@ -4,9 +4,14 @@ from sqlalchemy import MetaData from sqlalchemy import select from sqlalchemy import String from sqlalchemy import Table +from sqlalchemy import testing +from sqlalchemy import util from sqlalchemy.sql import base as sql_base +from sqlalchemy.sql import coercions +from sqlalchemy.sql import column +from sqlalchemy.sql import ColumnElement +from sqlalchemy.sql import roles from sqlalchemy.sql import util as sql_util -from sqlalchemy.sql.elements import ColumnElement from sqlalchemy.testing import assert_raises from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import eq_ @@ -89,3 +94,28 @@ class MiscTest(fixtures.TestBase): eq_(o4.bat, "hi") assert_raises(TypeError, opt2.safe_merge, o4) + + @testing.combinations( + (column("q"), [column("q")]), + (column("q").desc(), [column("q")]), + (column("q").desc().label(None), [column("q")]), + (column("q").label(None).desc(), [column("q")]), + (column("q").label(None).desc().label(None), [column("q")]), + ("foo", []), # textual label reference + ( + select([column("q")]).scalar_subquery().label(None), + [select([column("q")]).scalar_subquery().label(None)], + ), + ( + select([column("q")]).scalar_subquery().label(None).desc(), + [select([column("q")]).scalar_subquery().label(None)], + ), + ) + def test_unwrap_order_by(self, expr, expected): + + expr = coercions.expect(roles.OrderByRole, expr) + + unwrapped = sql_util.unwrap_order_by(expr) + + for a, b in util.zip_longest(unwrapped, expected): + assert a is not None and a.compare(b) |
