summaryrefslogtreecommitdiff
path: root/test/ext/test_baked.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2017-01-25 13:30:47 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2017-01-30 13:02:29 -0500
commitecfda6512cf8a50238529168932586444b657954 (patch)
tree7f1c9f0f5450afadabcb39fdbeb39f66865cb633 /test/ext/test_baked.py
parent1c578a710f14568856dad6a1c0bad1269b4108c4 (diff)
downloadsqlalchemy-ecfda6512cf8a50238529168932586444b657954.tar.gz
Add count(), scalar() to baked query
Change-Id: I8af0d7b41ae2df384ce5d0ef274732352d81f376 Fixes: #3897
Diffstat (limited to 'test/ext/test_baked.py')
-rw-r--r--test/ext/test_baked.py39
1 files changed, 38 insertions, 1 deletions
diff --git a/test/ext/test_baked.py b/test/ext/test_baked.py
index 818019de2..337fd4a12 100644
--- a/test/ext/test_baked.py
+++ b/test/ext/test_baked.py
@@ -6,7 +6,7 @@ from sqlalchemy import testing
from test.orm import _fixtures
from sqlalchemy.ext.baked import BakedQuery, baked_lazyload, BakedLazyLoader
from sqlalchemy.ext import baked
-from sqlalchemy import bindparam, func
+from sqlalchemy import bindparam, func, literal_column
from sqlalchemy.orm import exc as orm_exc
import itertools
from sqlalchemy.testing import mock
@@ -241,6 +241,43 @@ class LikeQueryTest(BakedTest):
eq_(u2.name, 'ed')
self.assert_sql_count(testing.db, go, 1)
+ def test_scalar(self):
+ User = self.classes.User
+
+ bq = self.bakery(lambda s: s.query(User.id))
+
+ sess = Session()
+
+ bq += lambda q: q.filter(User.id == 7)
+
+ eq_(
+ bq(sess).scalar(), 7
+ )
+
+ def test_count(self):
+ User = self.classes.User
+
+ bq = self.bakery(lambda s: s.query(User))
+
+ sess = Session()
+
+ eq_(
+ bq(sess).count(),
+ 4
+ )
+
+ bq += lambda q: q.filter(User.id.in_([8, 9]))
+
+ eq_(
+ bq(sess).count(), 2
+ )
+
+ # original query still works
+ eq_(
+ set([(u.id, u.name) for u in bq(sess).all()]),
+ set([(8, 'ed'), (9, 'fred')])
+ )
+
def test_get_pk_w_null(self):
"""test the re-implementation of logic to do get with IS NULL."""