]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- ordering for tests, [ticket:1888]
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 5 Dec 2010 03:59:32 +0000 (22:59 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 5 Dec 2010 03:59:32 +0000 (22:59 -0500)
test/orm/test_eager_relations.py
test/orm/test_expire.py
test/orm/test_mapper.py
test/orm/test_query.py

index b70ad0973a38cdc6966d1f14d0ed1ab5d4f1d882..2f2fc7b0c5a4b817200cd6d2a84e509493081f55 100644 (file)
@@ -610,7 +610,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         sel = sa.select([users, addresses.c.email_address],
                         users.c.id==addresses.c.user_id).alias('useralias')
         mapper(User, sel, properties={
-            'orders':relationship(Order, primaryjoin=sel.c.id==orders.c.user_id, lazy='joined')
+            'orders':relationship(Order, primaryjoin=sel.c.id==orders.c.user_id, 
+                                    lazy='joined', order_by=orders.c.id)
         })
         mapper(Order, orders)
 
index f356658a1ad4198b942d531b53c2190185bb257f..4c10399bcda903816ace9013102004d757d4e3a8 100644 (file)
@@ -148,7 +148,8 @@ class ExpireTest(_fixtures.FixtureTest):
 
     @testing.resolve_artifact_names
     def test_refresh_collection_exception(self):
-        """test graceful failure for currently unsupported immediate refresh of a collection"""
+        """test graceful failure for currently unsupported 
+        immediate refresh of a collection"""
         
         mapper(User, users, properties={
             'addresses':relationship(Address, order_by=addresses.c.email_address)
@@ -156,10 +157,13 @@ class ExpireTest(_fixtures.FixtureTest):
         mapper(Address, addresses)
         s = create_session(autoflush=True, autocommit=False)
         u = s.query(User).get(8)
-        assert_raises_message(sa_exc.InvalidRequestError, "properties specified for refresh", s.refresh, u, ['addresses'])
+        assert_raises_message(sa_exc.InvalidRequestError, 
+                        "properties specified for refresh", 
+                        s.refresh, u, ['addresses'])
         
         # in contrast to a regular query with no columns
-        assert_raises_message(sa_exc.InvalidRequestError, "no columns with which to SELECT", s.query().all)
+        assert_raises_message(sa_exc.InvalidRequestError, 
+                        "no columns with which to SELECT", s.query().all)
         
     @testing.resolve_artifact_names
     def test_refresh_cancels_expire(self):
@@ -732,7 +736,8 @@ class ExpireTest(_fixtures.FixtureTest):
     @testing.resolve_artifact_names
     def test_expire_all(self):
         mapper(User, users, properties={
-            'addresses':relationship(Address, backref='user', lazy='joined'),
+            'addresses':relationship(Address, backref='user', lazy='joined', 
+                                    order_by=addresses.c.id),
             })
         mapper(Address, addresses)
 
index 52714eb43e197d726bea1ceba92e901bf62b8ede..76c52d1c462a586fbf1bacb105b1122fd9f4e01e 100644 (file)
@@ -1328,9 +1328,11 @@ class OptionsTest(_fixtures.FixtureTest):
 
     @testing.resolve_artifact_names
     def test_eager_degrade(self):
-        """An eager relationship automatically degrades to a lazy relationship if eager columns are not available"""
+        """An eager relationship automatically degrades to a lazy relationship 
+        if eager columns are not available"""
         mapper(User, users, properties=dict(
-            addresses = relationship(mapper(Address, addresses), lazy='joined')))
+            addresses = relationship(mapper(Address, addresses), 
+                                lazy='joined', order_by=addresses.c.id)))
 
         sess = create_session()
         # first test straight eager load, 1 statement
index aa95db5e780199b09609bf58ab04aa03f8defea3..ee062419740ddd41b78377016bf332a0f868a324 100644 (file)
@@ -2721,34 +2721,51 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
 
     def test_from_alias(self):
 
-        query = users.select(users.c.id==7).union(users.select(users.c.id>7)).alias('ulist').outerjoin(addresses).select(use_labels=True,order_by=['ulist.id', addresses.c.id])
+        query = users.select(users.c.id==7).\
+                    union(users.select(users.c.id>7)).\
+                    alias('ulist').\
+                    outerjoin(addresses).\
+                    select(use_labels=True,
+                            order_by=['ulist.id', addresses.c.id])
         sess =create_session()
         q = sess.query(User)
 
         def go():
-            l = list(q.options(contains_alias('ulist'), contains_eager('addresses')).instances(query.execute()))
+            l = list(q.options(contains_alias('ulist'), 
+                            contains_eager('addresses')).\
+                            instances(query.execute()))
             assert self.static.user_address_result == l
         self.assert_sql_count(testing.db, go, 1)
 
         sess.expunge_all()
 
         def go():
-            l = q.options(contains_alias('ulist'), contains_eager('addresses')).from_statement(query).all()
+            l = q.options(contains_alias('ulist'), 
+                            contains_eager('addresses')).\
+                                from_statement(query).all()
             assert self.static.user_address_result == l
         self.assert_sql_count(testing.db, go, 1)
 
         # better way.  use select_from()
         def go():
-            l = sess.query(User).select_from(query).options(contains_eager('addresses')).all()
+            l = sess.query(User).select_from(query).\
+                        options(contains_eager('addresses')).all()
             assert self.static.user_address_result == l
         self.assert_sql_count(testing.db, go, 1)
 
-        # same thing, but alias addresses, so that the adapter generated by select_from() is wrapped within
+        # same thing, but alias addresses, so that the adapter 
+        # generated by select_from() is wrapped within
         # the adapter created by contains_eager()
         adalias = addresses.alias()
-        query = users.select(users.c.id==7).union(users.select(users.c.id>7)).alias('ulist').outerjoin(adalias).select(use_labels=True,order_by=['ulist.id', adalias.c.id])
+        query = users.select(users.c.id==7).\
+                    union(users.select(users.c.id>7)).\
+                    alias('ulist').\
+                    outerjoin(adalias).\
+                    select(use_labels=True,
+                            order_by=['ulist.id', adalias.c.id])
         def go():
-            l = sess.query(User).select_from(query).options(contains_eager('addresses', alias=adalias)).all()
+            l = sess.query(User).select_from(query).\
+                    options(contains_eager('addresses', alias=adalias)).all()
             assert self.static.user_address_result == l
         self.assert_sql_count(testing.db, go, 1)
 
@@ -2756,13 +2773,19 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
         sess = create_session()
 
         # test that contains_eager suppresses the normal outer join rendering
-        q = sess.query(User).outerjoin(User.addresses).options(contains_eager(User.addresses)).order_by(User.id)
-        self.assert_compile(q.with_labels().statement, 
-            "SELECT addresses.id AS addresses_id, addresses.user_id AS addresses_user_id, "\
-            "addresses.email_address AS addresses_email_address, users.id AS users_id, "\
-            "users.name AS users_name FROM users LEFT OUTER JOIN addresses "\
-            "ON users.id = addresses.user_id ORDER BY users.id"
-            , dialect=default.DefaultDialect())
+        q = sess.query(User).outerjoin(User.addresses).\
+                        options(contains_eager(User.addresses)).\
+                        order_by(User.id, addresses.c.id)
+        self.assert_compile(q.with_labels().statement,
+                            'SELECT addresses.id AS addresses_id, '
+                            'addresses.user_id AS addresses_user_id, '
+                            'addresses.email_address AS '
+                            'addresses_email_address, users.id AS '
+                            'users_id, users.name AS users_name FROM '
+                            'users LEFT OUTER JOIN addresses ON '
+                            'users.id = addresses.user_id ORDER BY '
+                            'users.id, addresses.id',
+                            dialect=default.DefaultDialect())
                 
         def go():
             assert self.static.user_address_result == q.all()
@@ -2770,7 +2793,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
         sess.expunge_all()
 
         adalias = addresses.alias()
-        q = sess.query(User).select_from(users.outerjoin(adalias)).options(contains_eager(User.addresses, alias=adalias))
+        q = sess.query(User).select_from(users.outerjoin(adalias)).options(contains_eager(User.addresses, alias=adalias)).order_by(User.id, adalias.c.id)
         def go():
             eq_(self.static.user_address_result, q.order_by(User.id).all())
         self.assert_sql_count(testing.db, go, 1)