From 4fb928e0c34b36f696607be55941ecd712660643 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 23 Jul 2005 07:10:09 +0000 Subject: [PATCH] --- test/mapper.py | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/test/mapper.py b/test/mapper.py index af54ba963f..fe1ba62c76 100644 --- a/test/mapper.py +++ b/test/mapper.py @@ -5,7 +5,7 @@ import sqlalchemy.databases.sqlite as sqllite if os.access('querytest.db', os.F_OK): os.remove('querytest.db') -db = sqllite.engine('querytest.db', echo = True) +db = sqllite.engine('querytest.db', opts = {'isolation_level':None}, echo = True) from sqlalchemy.sql import * from sqlalchemy.schema import * @@ -89,7 +89,9 @@ itemkeywords.insert().execute(keyword_id=3, item_id=3) itemkeywords.insert().execute(keyword_id=5, item_id=2) itemkeywords.insert().execute(keyword_id=4, item_id=3) -class User: + +sys.exit() +class User(object): def __repr__(self): return ( """ @@ -98,25 +100,25 @@ User Name: %s Addresses: %s Orders: %s Open Orders %s -Closed Orders %s +Closed Orderss %s ------------------ """ % tuple([self.user_id, repr(self.user_name)] + [repr(getattr(self, attr, None)) for attr in ('addresses', 'orders', 'orders_open', 'orders_closed')]) ) -class Address: +class Address(object): def __repr__(self): return "Address: " + repr(self.user_id) + " " + repr(self.email_address) -class Order: +class Order(object): def __repr__(self): return "Order: " + repr(self.description) + " " + repr(self.isopen) + " " + repr(getattr(self, 'items', None)) -class Item: +class Item(object): def __repr__(self): return "Item: " + repr(self.item_name) + " " +repr(getattr(self, 'keywords', None)) -class Keyword: +class Keyword(object): def __repr__(self): return "Keyword: " + repr(self.name) @@ -156,6 +158,20 @@ class LazyTest(PersistTest): a = user.addresses print repr(user) + def testmanytomany(self): + """tests a many-to-many lazy load""" + items = orderitems + + m = mapper(Item, items, properties = dict( + keywords = relation(Keyword, keywords, + and_(items.c.item_id == itemkeywords.c.item_id, keywords.c.keyword_id == itemkeywords.c.keyword_id), lazy = True), + )) + l = m.select() + print repr(l) + + l = m.select(and_(keywords.c.name == 'red', keywords.c.keyword_id == itemkeywords.c.keyword_id, items.c.item_id==itemkeywords.c.item_id)) + print repr(l) + -- 2.47.2