diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-01-25 13:30:47 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-01-30 13:02:29 -0500 |
| commit | ecfda6512cf8a50238529168932586444b657954 (patch) | |
| tree | 7f1c9f0f5450afadabcb39fdbeb39f66865cb633 /test/ext/test_baked.py | |
| parent | 1c578a710f14568856dad6a1c0bad1269b4108c4 (diff) | |
| download | sqlalchemy-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.py | 39 |
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.""" |
