summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Siegerman <eric.siegerman@rci.rogers.com>2015-09-24 15:25:15 -0400
committerEric Siegerman <eric.siegerman@rci.rogers.com>2015-09-24 15:25:15 -0400
commit91255618ddb47553774c620a23479adf88c27b74 (patch)
treeef58d9af98ee32c0a746e9c72e3083454150d8ef
parent5b71858533ea153dec119b3592631fdb1500a15f (diff)
downloadsqlalchemy-pr/202.tar.gz
Fix sqlalchemy.ext.baked.Result.one_or_none() exception messagepr/202
Also add a couple of missing tests.
-rw-r--r--lib/sqlalchemy/ext/baked.py2
-rw-r--r--test/ext/test_baked.py29
2 files changed, 27 insertions, 4 deletions
diff --git a/lib/sqlalchemy/ext/baked.py b/lib/sqlalchemy/ext/baked.py
index a933e7eb7..d8c8843f6 100644
--- a/lib/sqlalchemy/ext/baked.py
+++ b/lib/sqlalchemy/ext/baked.py
@@ -301,7 +301,7 @@ class Result(object):
return None
else:
raise orm_exc.MultipleResultsFound(
- "Multiple rows were found for one()")
+ "Multiple rows were found for one_or_none()")
def all(self):
"""Return all rows.
diff --git a/test/ext/test_baked.py b/test/ext/test_baked.py
index ae335db02..9534c29e9 100644
--- a/test/ext/test_baked.py
+++ b/test/ext/test_baked.py
@@ -1,6 +1,7 @@
from sqlalchemy.orm import Session, subqueryload, \
mapper, relationship, lazyload, clear_mappers
-from sqlalchemy.testing import eq_, is_, is_not_, assert_raises
+from sqlalchemy.testing import eq_, is_, is_not_
+from sqlalchemy.testing import assert_raises, assert_raises_message
from sqlalchemy import testing
from test.orm import _fixtures
from sqlalchemy.ext.baked import BakedQuery, baked_lazyload, BakedLazyLoader
@@ -171,25 +172,47 @@ class LikeQueryTest(BakedTest):
u1 = bq(Session()).one_or_none()
eq_(u1.name, 'ed')
+ def test_one_or_none_multiple_result(self):
+ User = self.classes.User
+
+ bq = self.bakery(lambda s: s.query(User))
+ bq += lambda q: q.filter(User.name.like('%ed%'))
+
+ assert_raises(
+ orm_exc.MultipleResultsFound,
+ bq(Session()).one_or_none
+ )
+
def test_one_no_result(self):
User = self.classes.User
bq = self.bakery(lambda s: s.query(User))
bq += lambda q: q.filter(User.name == 'asdf')
- assert_raises(
+ assert_raises_message(
orm_exc.NoResultFound,
+ "No row was found for one()",
bq(Session()).one
)
+ def test_one_result(self):
+ User = self.classes.User
+
+ bq = self.bakery(lambda s: s.query(User))
+ bq += lambda q: q.filter(User.name == 'ed')
+
+ u1 = bq(Session()).one()
+ eq_(u1.name, 'ed')
+
def test_one_multiple_result(self):
User = self.classes.User
bq = self.bakery(lambda s: s.query(User))
bq += lambda q: q.filter(User.name.like('%ed%'))
- assert_raises(
+ assert_raises_message(
orm_exc.MultipleResultsFound,
+ "Multiple rows were found for one()",
bq(Session()).one
)