summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-11-15 15:10:05 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-11-15 15:10:05 +0000
commite076169d390df8a9e90aa46053db34fd5815598a (patch)
tree0f39618de4a792d4fbf9e169795817c63c418580 /test
parentd5da9a56bc0759fd8c6b3ed9732ca6f28f6dcfb4 (diff)
downloadsqlalchemy-e076169d390df8a9e90aa46053db34fd5815598a.tar.gz
fixed further issues with row translation [ticket:868]
Diffstat (limited to 'test')
-rw-r--r--test/orm/eager_relations.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/orm/eager_relations.py b/test/orm/eager_relations.py
index e5d1e853c..3e811b86b 100644
--- a/test/orm/eager_relations.py
+++ b/test/orm/eager_relations.py
@@ -581,6 +581,41 @@ class SelfReferentialEagerTest(ORMTest):
]) == d
self.assert_sql_count(testbase.db, go, 1)
+ def test_with_deferred(self):
+ class Node(Base):
+ def append(self, node):
+ self.children.append(node)
+
+ mapper(Node, nodes, properties={
+ 'children':relation(Node, lazy=False, join_depth=3),
+ 'data':deferred(nodes.c.data)
+ })
+ sess = create_session()
+ n1 = Node(data='n1')
+ n1.append(Node(data='n11'))
+ n1.append(Node(data='n12'))
+ sess.save(n1)
+ sess.flush()
+ sess.clear()
+
+ def go():
+ assert Node(data='n1', children=[Node(data='n11'), Node(data='n12')]) == sess.query(Node).first()
+ self.assert_sql_count(testbase.db, go, 4)
+
+ sess.clear()
+
+ def go():
+ assert Node(data='n1', children=[Node(data='n11'), Node(data='n12')]) == sess.query(Node).options(undefer('data')).first()
+ self.assert_sql_count(testbase.db, go, 3)
+
+ sess.clear()
+
+ def go():
+ assert Node(data='n1', children=[Node(data='n11'), Node(data='n12')]) == sess.query(Node).options(undefer('data'), undefer('children.data')).first()
+ self.assert_sql_count(testbase.db, go, 1)
+
+
+
def test_options(self):
class Node(Base):
def append(self, node):