diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-03-01 15:42:11 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-03-01 15:58:29 -0500 |
| commit | 7c568bb4e887634872101789b2c2541557bc5df0 (patch) | |
| tree | a6cada67e836ac277b796f9913562af9e2b7f929 /test | |
| parent | 0bda660d92d882e0cc6aa4cd72cad43ee021977f (diff) | |
| download | sqlalchemy-row_proc_integration_3.tar.gz | |
- turn on population fully. the change we have to make hererow_proc_integration_3
is to no longer attempt to locate deferred columns in the result.
if a column is desired as undeferred, it needs to be stated
as such.
Diffstat (limited to 'test')
| -rw-r--r-- | test/orm/test_deferred.py | 33 | ||||
| -rw-r--r-- | test/orm/test_eager_relations.py | 13 |
2 files changed, 35 insertions, 11 deletions
diff --git a/test/orm/test_deferred.py b/test/orm/test_deferred.py index 1b777b527..29087fdb8 100644 --- a/test/orm/test_deferred.py +++ b/test/orm/test_deferred.py @@ -341,7 +341,8 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): ) def test_locates_col(self): - """Manually adding a column to the result undefers the column.""" + """changed in 1.0 - we don't search for deferred cols in the result + now. """ orders, Order = self.tables.orders, self.classes.Order @@ -350,18 +351,40 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): 'description': deferred(orders.c.description)}) sess = create_session() - o1 = sess.query(Order).order_by(Order.id).first() + o1 = (sess.query(Order). + order_by(Order.id). + add_column(orders.c.description).first())[0] def go(): eq_(o1.description, 'order 1') + # prior to 1.0 we'd search in the result for this column + # self.sql_count_(0, go) self.sql_count_(1, go) + def test_locates_col_rowproc_only(self): + """changed in 1.0 - we don't search for deferred cols in the result + now. + + Because the loading for ORM Query and Query from a core select + is now split off, we test loading from a plain select() + separately. + + """ + + orders, Order = self.tables.orders, self.classes.Order + + + mapper(Order, orders, properties={ + 'description': deferred(orders.c.description)}) + sess = create_session() + stmt = sa.select([Order]).order_by(Order.id) o1 = (sess.query(Order). - order_by(Order.id). - add_column(orders.c.description).first())[0] + from_statement(stmt).all())[0] def go(): eq_(o1.description, 'order 1') - self.sql_count_(0, go) + # prior to 1.0 we'd search in the result for this column + # self.sql_count_(0, go) + self.sql_count_(1, go) def test_deep_options(self): users, items, order_items, Order, Item, User, orders = (self.tables.users, diff --git a/test/orm/test_eager_relations.py b/test/orm/test_eager_relations.py index 4c6d9bbe1..ea8db8fda 100644 --- a/test/orm/test_eager_relations.py +++ b/test/orm/test_eager_relations.py @@ -294,20 +294,21 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): sess.expunge_all() a = sess.query(Address).filter(Address.id == 1).all()[0] + # 1.0 change! we don't automatically undefer user_id here. + # if the user wants a column undeferred, add the option. def go(): eq_(a.user_id, 7) - # assert that the eager loader added 'user_id' to the row and deferred - # loading of that col was disabled - self.assert_sql_count(testing.db, go, 0) + # self.assert_sql_count(testing.db, go, 0) + self.assert_sql_count(testing.db, go, 1) sess.expunge_all() a = sess.query(Address).filter(Address.id == 1).first() def go(): eq_(a.user_id, 7) - # assert that the eager loader added 'user_id' to the row and deferred - # loading of that col was disabled - self.assert_sql_count(testing.db, go, 0) + # same, 1.0 doesn't check these + # self.assert_sql_count(testing.db, go, 0) + self.assert_sql_count(testing.db, go, 1) # do the mapping in reverse # (we would have just used an "addresses" backref but the test |
