From: Mike Bayer Date: Tue, 15 Nov 2005 03:32:21 +0000 (+0000) Subject: added "live" option to lazyloader, makes it load from DB on every hit X-Git-Tag: rel_0_1_0~345 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24228d3443cfea77dfca3d9ff5b156de31f858af;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git added "live" option to lazyloader, makes it load from DB on every hit --- diff --git a/test/objectstore.py b/test/objectstore.py index 9d2ff68c2d..a3881fd83e 100644 --- a/test/objectstore.py +++ b/test/objectstore.py @@ -642,23 +642,34 @@ class SaveTest(AssertMixin): self.assert_result(l, *data) def testbidirectional(self): - m1 = mapper(User, users, properties={ - 'addresses':relation(Address, addresses, lazy=True, private=True) - }, is_primary=True) + m1 = mapper(User, users, is_primary=True) m2 = mapper(Address, addresses, properties = dict( - user = relation(User, users, lazy = False) + user = relation(m1, lazy = False) ), is_primary=True) + + # "live" means, when "addresses" is accessed, do a DB call every time + m1.add_property('addresses', relation(m2, private=True, lazy=True, live=True)) u = User() - print repr(u.__dict__.get('addresses', None)) + print repr(u.addresses) u.user_name = 'test' a = Address() a.email_address = 'testaddress' a.user = u objectstore.commit() - print repr(u.__dict__.get('addresses', None)) -# objectstore.clear() + print repr(u.addresses) + print repr(u.addresses) + x = False + try: + u.addresses.append('hi') + x = True + except: + pass + + if x: + self.assert_(False, "User addresses element should be read-only") + objectstore.delete(u) objectstore.commit()