From 1117e15255e4a67b6e78ec7b57fa20184c8bc543 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 10 Sep 2005 19:17:20 +0000 Subject: [PATCH] --- test/mapper.py | 55 +++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/test/mapper.py b/test/mapper.py index f6819135a0..1dedb11491 100644 --- a/test/mapper.py +++ b/test/mapper.py @@ -491,38 +491,33 @@ class SaveTest(AssertMixin): keywordmapper = mapper(Keyword, keywords) - item = Item() - item.item_name = 'item1' - item.keywords = [] - k = Keyword() - k.name = 'purple' - item.keywords.append(k) - klist = keywordmapper.select(keywords.c.name.in_('blue', 'big', 'round')) - for k in klist: - item.keywords.append(k) + 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']}, + ] + for elem in data: + item = Item() + item.item_name = elem['name'] + item.keywords = [] + klist = keywordmapper.select(keywords.c.name.in_(*elem['keywords'])) + khash = {} + for k in klist: + khash[k.name] = k + for kname in elem['keywords']: + try: + k = khash[kname] + except KeyError: + k = Keyword() + k.name = kname + item.keywords.append(k) objectstore.uow().commit() - return - - l = m.select(items.c.item_id == item.item_id) - - self.assert_result(l, Item, - {'item_id' : item.item_id, 'keywords' : (Keyword, [ - {'name' : 'purple'}, - {'name' : 'blue'}, - {'name' : 'big'}, - {'name' : 'round'} - ])}) - - del item.keywords[2] - del item.keywords[2] - m.save(item) - l = m.select(items.c.item_id == item.item_id) - self.assert_result(l, Item, - {'item_id' : item.item_id, 'keywords' : (Keyword, [ - {'name' : 'purple'}, - {'name' : 'blue'}, - ])}) + l = m.select(items.c.item_name.in_(*[e['name'] for e in data])) + print repr(l) + if __name__ == "__main__": unittest.main() -- 2.47.2