diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-11-15 15:10:05 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-11-15 15:10:05 +0000 |
| commit | e076169d390df8a9e90aa46053db34fd5815598a (patch) | |
| tree | 0f39618de4a792d4fbf9e169795817c63c418580 /test | |
| parent | d5da9a56bc0759fd8c6b3ed9732ca6f28f6dcfb4 (diff) | |
| download | sqlalchemy-e076169d390df8a9e90aa46053db34fd5815598a.tar.gz | |
fixed further issues with row translation [ticket:868]
Diffstat (limited to 'test')
| -rw-r--r-- | test/orm/eager_relations.py | 35 |
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): |
