]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Fix sqlalchemy.ext.baked.Result.one_or_none() exception message
authorEric Siegerman <eric.siegerman@rci.rogers.com>
Thu, 24 Sep 2015 19:25:15 +0000 (15:25 -0400)
committerEric Siegerman <eric.siegerman@rci.rogers.com>
Thu, 24 Sep 2015 19:25:15 +0000 (15:25 -0400)
Also add a couple of missing tests.

lib/sqlalchemy/ext/baked.py
test/ext/test_baked.py

index a933e7eb717f0baaebc43bd27bc40a4f266003f2..d8c8843f6d71cab5b65c5c3163af7623d03d4f48 100644 (file)
@@ -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.
index ae335db025a44a6383c628173890f909e447b631..9534c29e918708f1a6d27dfa534e8171d46094e4 100644 (file)
@@ -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
         )