summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-06-28 23:01:04 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-06-28 23:01:04 +0000
commit2fb9221b797e5a29e34096c09d97615d859e95d1 (patch)
tree965d4eeb9ac74a6d83fa4867cf0c0b3496a7c35c /test
parent5c0e32bf33a5db32c1beabc0fadb4ddd1fbd24be (diff)
downloadsqlalchemy-2fb9221b797e5a29e34096c09d97615d859e95d1.tar.gz
fixed endless loop bug in select_by(), if the traversal hit
two mappers that referenced each other
Diffstat (limited to 'test')
-rw-r--r--test/orm/mapper.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/test/orm/mapper.py b/test/orm/mapper.py
index e1cdb5177..146099815 100644
--- a/test/orm/mapper.py
+++ b/test/orm/mapper.py
@@ -247,6 +247,15 @@ class MapperTest(MapperSuperTest):
l = create_session().query(User).select(users.c.user_name.endswith('ed'))
self.assert_result(l, User, *user_result[1:3])
+ def testrecursiveselectby(self):
+ """test that no endless loop occurs when traversing for select_by"""
+ m = mapper(User, users, properties={
+ 'orders':relation(mapper(Order, orders), backref='user'),
+ 'addresses':relation(mapper(Address, addresses), backref='user'),
+ })
+ q = create_session().query(m)
+ q.select_by(email_address='foo')
+
def testjoinvia(self):
m = mapper(User, users, properties={
'orders':relation(mapper(Order, orders, properties={