summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/query.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-05-27 01:19:56 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-05-27 01:19:56 +0000
commitc6baecfd799ffee65d86a0e3268152182bce3ac3 (patch)
treeca7c28cf5b0585ef0fc4ca8c1454e0c3b085bc1a /lib/sqlalchemy/orm/query.py
parent0133283c78f7f75adee27860591e5335f798eb32 (diff)
downloadsqlalchemy-c6baecfd799ffee65d86a0e3268152182bce3ac3.tar.gz
converted sqlsoup, got its doctests working (werent working in 0.1 either....), added doctest hook to testsuite
fix to selectone_by/selectone when zero rows returned
Diffstat (limited to 'lib/sqlalchemy/orm/query.py')
-rw-r--r--lib/sqlalchemy/orm/query.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index cfd89411a..64484e4fc 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -169,7 +169,10 @@ class Query(object):
ret = self.select_whereclause(self.join_by(*args, **params), limit=2)
if len(ret) == 1:
return ret[0]
- raise exceptions.InvalidRequestError('Multiple rows returned for selectone_by')
+ elif len(ret) == 0:
+ raise exceptions.InvalidRequestError('No rows returned for selectone_by')
+ else:
+ raise exceptions.InvalidRequestError('Multiple rows returned for selectone_by')
def count_by(self, *args, **params):
"""returns the count of instances based on the given clauses and key/value criterion.
@@ -191,7 +194,10 @@ class Query(object):
ret = list(self.select(*args, **params)[0:2])
if len(ret) == 1:
return ret[0]
- raise exceptions.InvalidRequestError('Multiple rows returned for selectone')
+ elif len(ret) == 0:
+ raise exceptions.InvalidRequestError('No rows returned for selectone_by')
+ else:
+ raise exceptions.InvalidRequestError('Multiple rows returned for selectone')
def select(self, arg=None, **kwargs):
"""selects instances of the object from the database.