diff options
| -rw-r--r-- | test/orm/cascade.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/orm/cascade.py b/test/orm/cascade.py index 3fed58dfa..7cb123160 100644 --- a/test/orm/cascade.py +++ b/test/orm/cascade.py @@ -72,6 +72,41 @@ class O2MCascadeTest(testbase.AssertMixin): sess.flush() sess.clear() + def testassignlist(self): + sess = create_session() + u = tables.User() + u.user_name = 'jack' + o1 = tables.Order() + o1.description ='someorder' + o2 = tables.Order() + o2.description = 'someotherorder' + l = [o1, o2] + sess.save(u) + u.orders = l + assert o1 in sess + assert o2 in sess + sess.flush() + sess.clear() + + u = sess.query(tables.User).get(u.user_id) + o3 = tables.Order() + o3.description='order3' + o4 = tables.Order() + o4.description = 'order4' + u.orders = [o3, o4] + assert o3 in sess + assert o4 in sess + sess.flush() + + o5 = tables.Order() + o5.description='order5' + sess.save(o5) + try: + sess.flush() + assert False + except exceptions.FlushError, e: + assert "is an orphan" in str(e) + def testdelete(self): sess = create_session() |
