From: Mike Bayer Date: Thu, 29 Dec 2005 00:42:47 +0000 (+0000) Subject: updates for assignmapper, inherit_condition not required X-Git-Tag: rel_0_1_0~203 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b93554cc076d336971bcaa50110276fd02123e7;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git updates for assignmapper, inherit_condition not required --- diff --git a/examples/adjacencytree/byroot_tree.py b/examples/adjacencytree/byroot_tree.py index ea5b9fac78..58b16e4c12 100644 --- a/examples/adjacencytree/byroot_tree.py +++ b/examples/adjacencytree/byroot_tree.py @@ -98,7 +98,7 @@ class TreeData(object): def __repr__(self): return "TreeData(%s, %s)" % (repr(self.id), repr(self.value)) -TreeNode.mapper=assignmapper(tables.trees, properties=dict( +assign_mapper(TreeNode, tables.trees, properties=dict( id=tables.trees.c.node_id, name=tables.trees.c.node_name, parent_id=tables.trees.c.parent_node_id, diff --git a/test/mapper.py b/test/mapper.py index d07a6488b9..a18ec467d7 100644 --- a/test/mapper.py +++ b/test/mapper.py @@ -97,6 +97,8 @@ class MapperTest(MapperSuperTest): l = m.select_by(email_address='ed@bettyboop.com') self.assert_result(l, User, *[{'user_id':8}]) + l = m.select_by(User.c.user_name=='fred', addresses.c.email_address!='ed@bettyboop.com', user_id=9) + def testload(self): """tests loading rows with a mapper and producing object instances""" m = mapper(User, users) @@ -166,10 +168,12 @@ class PropertyTest(MapperSuperTest): def testbasic(self): """tests that you can create mappers inline with class definitions""" class _Address(object): - mapper = assignmapper(addresses) + pass + assign_mapper(_Address, addresses) class _User(object): - mapper = assignmapper(users, properties = dict( + pass + assign_mapper(_User, users, properties = dict( addresses = relation(_Address.mapper, lazy = False) ), is_primary = True) @@ -179,23 +183,28 @@ class PropertyTest(MapperSuperTest): def testinherits(self): class _Order(object): - mapper = assignmapper(orders) + pass + assign_mapper(_Order, orders) class _User(object): - mapper = assignmapper(users, properties = dict( + pass + assign_mapper(_User, users, properties = dict( orders = relation(_Order.mapper, lazy = False) )) class AddressUser(_User): - mapper = assignmapper(addresses, inherits = _User.mapper, inherit_condition=_User.c.user_id==addresses.c.user_id) + pass + assign_mapper(AddressUser, addresses, inherits = _User.mapper) l = AddressUser.mapper.select() jack = l[0] + self.assert_(jack.user_name=='jack') jack.email_address = 'jack@gmail.com' objectstore.commit() - - self.echo(repr(AddressUser.mapper.select(AddressUser.c.user_name == 'jack'))) + objectstore.clear() + au = AddressUser.mapper.get_by(user_name='jack') + self.assert_(au.email_address == 'jack@gmail.com') class DeferredTest(MapperSuperTest): @@ -405,9 +414,7 @@ class LazyTest(MapperSuperTest): def testmanytomany(self): """tests a many-to-many lazy load""" - items = orderitems - - Item.mapper = assignmapper('items', engine = items.engine, properties = dict( + assign_mapper(Item, orderitems, properties = dict( keywords = relation(Keyword, keywords, itemkeywords, lazy = True), )) l = Item.mapper.select() diff --git a/test/select.py b/test/select.py index 366ce3c8f9..cba3325788 100644 --- a/test/select.py +++ b/test/select.py @@ -269,6 +269,11 @@ mytable.description FROM myothertable JOIN mytable ON mytable.myid = myothertabl "SELECT mytable.myid, mytable.name, mytable.description, myothertable.otherid, myothertable.othername, thirdtable.userid, thirdtable.otherstuff FROM mytable JOIN myothertable ON mytable.myid = myothertable.otherid JOIN thirdtable ON mytable.myid = thirdtable.userid" ) + self.runtest( + join(users, addresses).select(), + "SELECT users.user_id, users.user_name, users.password, addresses.address_id, addresses.user_id, addresses.street, addresses.city, addresses.state, addresses.zip FROM users JOIN addresses ON users.user_id = addresses.user_id" + ) + def testmultijoin(self): self.runtest( select([table, table2, table3],