From: Mike Bayer Date: Sat, 9 Mar 2013 17:28:18 +0000 (-0500) Subject: - clean up entity correlation tests in test_query X-Git-Tag: rel_0_8_0~7^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9066d99a0f978c942593ca53eca9bf89a1d62d80;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - clean up entity correlation tests in test_query --- diff --git a/test/orm/test_froms.py b/test/orm/test_froms.py index 4c566948af..b98333e3dd 100644 --- a/test/orm/test_froms.py +++ b/test/orm/test_froms.py @@ -174,9 +174,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL): ) # a little tedious here, adding labels to work around Query's - # auto-labelling. TODO: can we detect only one table in the - # "froms" and then turn off use_labels ? note: this query is - # incorrect SQL with the correlate of users in the FROM list. + # auto-labelling. s = sess.query(addresses.c.id.label('id'), addresses.c.email_address.label('email')).\ filter(addresses.c.user_id == users.c.id).correlate(users).\ @@ -188,7 +186,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL): "SELECT users.id AS users_id, users.name AS users_name, " "anon_1.email AS anon_1_email " "FROM users JOIN (SELECT addresses.id AS id, " - "addresses.email_address AS email FROM addresses " + "addresses.email_address AS email FROM addresses, users " "WHERE addresses.user_id = users.id) AS anon_1 " "ON anon_1.id = users.id", ) diff --git a/test/orm/test_query.py b/test/orm/test_query.py index be5d2b1350..ac9c95f414 100644 --- a/test/orm/test_query.py +++ b/test/orm/test_query.py @@ -194,13 +194,15 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL): Address = self.classes.Address self.assert_compile( - select([ - User.name, - select([func.count(Address.id) - ]).where(User.id == Address.user_id).correlate(User)]), - "SELECT users.name, count_1 FROM users, " + select([User.name, Address.id, + select([func.count(Address.id)]).\ + where(User.id == Address.user_id).\ + correlate(User).as_scalar() + ]), + "SELECT users.name, addresses.id, " "(SELECT count(addresses.id) AS count_1 " - "FROM addresses WHERE users.id = addresses.user_id)" + "FROM addresses WHERE users.id = addresses.user_id) AS anon_1 " + "FROM users, addresses" ) def test_correlate_aliased_entity(self): @@ -209,13 +211,16 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL): uu = aliased(User, name="uu") self.assert_compile( - select([ - uu.name, - select([func.count(Address.id) - ]).where(uu.id == Address.user_id).correlate(uu)]), - "SELECT uu.name, count_1 FROM users AS uu, " + select([uu.name, Address.id, + select([func.count(Address.id)]).\ + where(uu.id == Address.user_id).\ + correlate(uu).as_scalar() + ]), + # curious, "address.user_id = uu.id" is reversed here + "SELECT uu.name, addresses.id, " "(SELECT count(addresses.id) AS count_1 " - "FROM addresses WHERE addresses.user_id = uu.id)" + "FROM addresses WHERE addresses.user_id = uu.id) AS anon_1 " + "FROM users AS uu, addresses" ) def test_columns_clause_entity(self):