diff options
author | Eric Siegerman <eric.siegerman@rci.rogers.com> | 2015-09-24 15:25:15 -0400 |
---|---|---|
committer | Eric Siegerman <eric.siegerman@rci.rogers.com> | 2015-09-24 15:25:15 -0400 |
commit | 91255618ddb47553774c620a23479adf88c27b74 (patch) | |
tree | ef58d9af98ee32c0a746e9c72e3083454150d8ef | |
parent | 5b71858533ea153dec119b3592631fdb1500a15f (diff) | |
download | sqlalchemy-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.py | 2 | ||||
-rw-r--r-- | test/ext/test_baked.py | 29 |
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 ) |