]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
(no commit message)
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 10 Sep 2005 23:09:32 +0000 (23:09 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 10 Sep 2005 23:09:32 +0000 (23:09 +0000)
lib/sqlalchemy/mapper.py
test/mapper.py

index 9a7cf0044e19d350dbe74b32e75ae2d97eb8edff..341006faf20665ed65927b43ca9ce235bb4eb220 100644 (file)
@@ -521,7 +521,6 @@ class PropertyLoader(MapperProperty):
         setter = ForeignKeySetter(self.parent, self.mapper, self.parent.table, self.target, self.secondary)
 
         if self.secondaryjoin is not None:
-            print "secondaries !"
             secondary_delete = []
             secondary_insert = []
             for obj in deplist:
index 1dedb11491001f54c7bcc735fe8d1579758c6406..1c1d9bb6045dec4a496da2170ea73d8c50fd18d1 100644 (file)
@@ -482,7 +482,6 @@ class SaveTest(AssertMixin):
         self.assert_(addresstable[1].row == (a2.address_id, None, 'lala@test.org'))
 
     def testmanytomany(self):
-        print "\n\n\n\n\n"
         items = orderitems
 
         m = mapper(Item, items, properties = dict(
@@ -491,22 +490,28 @@ class SaveTest(AssertMixin):
 
         keywordmapper = mapper(Keyword, keywords)
 
-        data = [
-            {'name': 'item1', 'keywords' : ['green', 'purple', 'big', 'round']},
-            {'name': 'item2', 'keywords' : ['blue', 'small', 'imnew', 'round']},
-            {'name': 'item3', 'keywords' : ['red', 'small', 'round']},
-            {'name': 'item4', 'keywords' : ['blue', 'big']},
-            {'name': 'item5', 'keywords' : ['green', 'big', 'exacting']},
+        data = [Item,
+            {'item_name': 'item1', 'keywords' : (Keyword,[{'name': 'green'}, {'name': 'purple'},{'name': 'big'},{'name': 'round'}])},
+            {'item_name': 'item2', 'keywords' : (Keyword,[{'name':'blue'}, {'name':'small'}, {'name':'imnew'},{'name':'round'}])},
+            {'item_name': 'item3', 'keywords' : (Keyword,[])},
+            {'item_name': 'item4', 'keywords' : (Keyword,[{'name':'blue'},{'name':'big'}])},
+            {'item_name': 'item5', 'keywords' : (Keyword,[{'name':'green'},{'name':'big'},{'name':'exacting'}])},
+            {'item_name': 'item6', 'keywords' : (Keyword,[{'name':'red'},{'name':'small'},{'name':'round'}])},
         ]
-        for elem in data:
+        objects = []
+        for elem in data[1:]:
             item = Item()
-            item.item_name = elem['name']
+            objects.append(item)
+            item.item_name = elem['item_name']
             item.keywords = []
-            klist = keywordmapper.select(keywords.c.name.in_(*elem['keywords']))
+            if len(elem['keywords'][1]):
+                klist = keywordmapper.select(keywords.c.name.in_(*[e['name'] for e in elem['keywords'][1]]))
+            else:
+                klist = []
             khash = {}
             for k in klist:
                 khash[k.name] = k
-            for kname in elem['keywords']:
+            for kname in [e['name'] for e in elem['keywords'][1]]:
                 try:
                     k = khash[kname]
                 except KeyError:
@@ -516,8 +521,15 @@ class SaveTest(AssertMixin):
 
         objectstore.uow().commit()
 
-        l = m.select(items.c.item_name.in_(*[e['name'] for e in data]))
-        print repr(l)
+        l = m.select(items.c.item_name.in_(*[e['item_name'] for e in data[1:]]))
+        self.assert_result(l, data)
+
+        objects[4].item_name = 'item4updated'
+        k = Keyword()
+        k.name = 'yellow'
+        objects[5].keywords.append(k)
+        
+        objectstore.uow().commit()
         
 if __name__ == "__main__":
     unittest.main()