From: Mike Bayer Date: Thu, 17 May 2007 14:43:19 +0000 (+0000) Subject: added test for "assign a list of objects", ensure cascade/persistence functions X-Git-Tag: rel_0_3_8~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd96699bdd754e4aa2028fab032116af48b179c6;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git added test for "assign a list of objects", ensure cascade/persistence functions --- diff --git a/test/orm/cascade.py b/test/orm/cascade.py index 3fed58dfa8..7cb1231608 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()