+0.1.5
+- fixed attributes bug where if an object is committed, its lazy-loaded list got
+blown away if it hadnt been loaded
+
0.1.4
- create_engine() now uses genericized parameters; host/hostname, db/dbname/database,
password/passwd, etc. for all engine connections. makes engine URIs much more "universal"
value = None
p = self.manager.create_list(self.obj, self.key, value, readonly=self.live, **self.kwargs)
- if not self.live:
+ if not self.live and not passive:
# set the new history list as the new attribute, discards ourself
self.manager.attribute_history(self.obj)[self.key] = p
self.manager = None
self.assert_(u.user_id == userlist[0].user_id and userlist[0].user_name == 'modifiedname')
self.assert_(u2.user_id == userlist[1].user_id and userlist[1].user_name == 'savetester2')
+ def testlazyattrcommit(self):
+ """tests that when a lazy-loaded list is unloaded, and a commit occurs, that the
+ 'passive' call on that list does not blow away its value"""
+ m1 = mapper(User, users, properties = {
+ 'addresses': relation(mapper(Address, addresses))
+ })
+
+ u = User()
+ u.addresses.append(Address())
+ u.addresses.append(Address())
+ u.addresses.append(Address())
+ u.addresses.append(Address())
+ objectstore.commit()
+ objectstore.clear()
+ ulist = m1.select()
+ u1 = ulist[0]
+ u1.user_name = 'newname'
+ objectstore.commit()
+ self.assert_(len(u1.addresses) == 4)
+
def testinherits(self):
m1 = mapper(User, users)