]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
updates for assignmapper, inherit_condition not required
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 29 Dec 2005 00:42:47 +0000 (00:42 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 29 Dec 2005 00:42:47 +0000 (00:42 +0000)
examples/adjacencytree/byroot_tree.py
test/mapper.py
test/select.py

index ea5b9fac78b9711e763ebe49537ff6d9585f4bae..58b16e4c126dfca8f98eba1f0b8ef813797d4d72 100644 (file)
@@ -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,
index d07a6488b9a5fb32b64943de3501f9c53be7ff75..a18ec467d79e476a660d183950238d96e86c4263 100644 (file)
@@ -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()
index 366ce3c8f9805ca79bb55d0faee30c14bb96955e..cba332578828b079c2f764c0a2b015ec478b4191 100644 (file)
@@ -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],