summaryrefslogtreecommitdiff
path: root/test/orm/test_query.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/orm/test_query.py')
-rw-r--r--test/orm/test_query.py59
1 files changed, 58 insertions, 1 deletions
diff --git a/test/orm/test_query.py b/test/orm/test_query.py
index c4c62c319..cdc4ac2c2 100644
--- a/test/orm/test_query.py
+++ b/test/orm/test_query.py
@@ -484,7 +484,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
self.assert_compile(
select([Foo]).where(Foo.foob == 'somename').order_by(Foo.foob),
"SELECT users.id, users.name FROM users "
- "WHERE coalesce(users.name) = :coalesce_1 "
+ "WHERE coalesce(users.name) = :param_1 "
"ORDER BY coalesce(users.name)"
)
@@ -1593,6 +1593,63 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
}, with_polymorphic="*" if polymorphic else None)
mapper(Address, addresses)
+ def _func_fixture(self, label=False):
+ User = self.classes.User
+ users = self.tables.users
+
+ if label:
+ mapper(User, users, properties={
+ "foobar": column_property(
+ func.foob(users.c.name).label(None)
+ )
+ })
+ else:
+ mapper(User, users, properties={
+ "foobar": column_property(
+ func.foob(users.c.name)
+ )
+ })
+
+ def test_anon_label_function_auto(self):
+ self._func_fixture()
+ User = self.classes.User
+
+ s = Session()
+
+ u1 = aliased(User)
+ self.assert_compile(
+ s.query(User.foobar, u1.foobar),
+ "SELECT foob(users.name) AS foob_1, foob(users_1.name) AS foob_2 "
+ "FROM users, users AS users_1"
+ )
+
+ def test_anon_label_function_manual(self):
+ self._func_fixture(label=True)
+ User = self.classes.User
+
+ s = Session()
+
+ u1 = aliased(User)
+ self.assert_compile(
+ s.query(User.foobar, u1.foobar),
+ "SELECT foob(users.name) AS foob_1, foob(users_1.name) AS foob_2 "
+ "FROM users, users AS users_1"
+ )
+
+ def test_anon_label_ad_hoc_labeling(self):
+ self._func_fixture()
+ User = self.classes.User
+
+ s = Session()
+
+ u1 = aliased(User)
+ self.assert_compile(
+ s.query(User.foobar.label('x'), u1.foobar.label('y')),
+ "SELECT foob(users.name) AS x, foob(users_1.name) AS y "
+ "FROM users, users AS users_1"
+ )
+
+
def test_order_by_column_prop_string(self):
User, Address = self.classes("User", "Address")
self._fixture(label=True)