]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- clean up entity correlation tests in test_query
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 9 Mar 2013 17:28:18 +0000 (12:28 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 9 Mar 2013 17:28:18 +0000 (12:28 -0500)
test/orm/test_froms.py
test/orm/test_query.py

index 4c566948aff0001ceb38ace9ef81d51f49d5be1f..b98333e3dd788ac805f42cc231eeee36452582cf 100644 (file)
@@ -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",
             )
index be5d2b135048c408911614b40e96e351c3f948ee..ac9c95f414b39e8131375141b65b863f2fb9471b 100644 (file)
@@ -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):