summaryrefslogtreecommitdiff
path: root/test/orm/test_unitofworkv2.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/orm/test_unitofworkv2.py')
-rw-r--r--test/orm/test_unitofworkv2.py43
1 files changed, 26 insertions, 17 deletions
diff --git a/test/orm/test_unitofworkv2.py b/test/orm/test_unitofworkv2.py
index 15b481898..8a39e77ee 100644
--- a/test/orm/test_unitofworkv2.py
+++ b/test/orm/test_unitofworkv2.py
@@ -195,7 +195,7 @@ class RudimentaryFlushTest(UOWTest):
)
class SingleCycleTest(UOWTest):
- def test_one_to_many(self):
+ def test_one_to_many_save(self):
mapper(Node, nodes, properties={
'children':relationship(Node)
})
@@ -209,36 +209,45 @@ class SingleCycleTest(UOWTest):
self.assert_sql_execution(
testing.db,
sess.flush,
+
CompiledSQL(
- "INSERT INTO nodes (data) VALUES (:data)",
- {'data': 'n1'}
+ "INSERT INTO nodes (parent_id, data) VALUES (:parent_id, :data)",
+ {'parent_id': None, 'data': 'n1'}
),
+ AllOf(
CompiledSQL(
- "INSERT INTO addresses (user_id, email_address) "
- "VALUES (:user_id, :email_address)",
- lambda ctx: {'email_address': 'a1', 'user_id':u1.id}
+ "INSERT INTO nodes (parent_id, data) VALUES (:parent_id, :data)",
+ lambda ctx: {'parent_id': n1.id, 'data': 'n2'}
),
CompiledSQL(
- "INSERT INTO addresses (user_id, email_address) "
- "VALUES (:user_id, :email_address)",
- lambda ctx: {'email_address': 'a2', 'user_id':u1.id}
+ "INSERT INTO nodes (parent_id, data) VALUES (:parent_id, :data)",
+ lambda ctx: {'parent_id': n1.id, 'data': 'n3'}
),
+ )
)
+
+ def test_one_to_many_delete_all(self):
+ mapper(Node, nodes, properties={
+ 'children':relationship(Node)
+ })
+ sess = create_session()
+
+ n2, n3 = Node(data='n2', children=[]), Node(data='n3', children=[])
+ n1 = Node(data='n1', children=[n2, n3])
+
+ sess.add(n1)
+ sess.flush()
- return
sess.delete(n1)
sess.delete(n2)
sess.delete(n3)
self.assert_sql_execution(
testing.db,
sess.flush,
- CompiledSQL(
- "DELETE FROM addresses WHERE addresses.id = :id",
- [{'id':a1.id},{'id':a2.id}]
- ),
- CompiledSQL(
- "DELETE FROM users WHERE users.id = :id",
- {'id':u1.id}
+ AllOf(
+ CompiledSQL("DELETE FROM nodes WHERE nodes.id = :id", {'id':3}),
+ CompiledSQL("DELETE FROM nodes WHERE nodes.id = :id", {'id':2}),
),
+ CompiledSQL("DELETE FROM nodes WHERE nodes.id = :id", {'id':1})
)