diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-09-08 22:50:37 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-09-08 22:50:37 +0000 |
| commit | e158234478f3bb17ec90e5dc5a125d0207d2d5fe (patch) | |
| tree | 5eb6c9af9dea8e5b404a10513f1283b4bb7a14e0 /test/sql/query.py | |
| parent | bf71da5ee6961e4ce67d079651b38f414e641ac7 (diff) | |
| download | sqlalchemy-e158234478f3bb17ec90e5dc5a125d0207d2d5fe.tar.gz | |
- The exists() construct won't "export" its contained list
of elements as FROM clauses, allowing them to be used more
effectively in the columns clause of a SELECT.
- and_() and or_() now generate a ColumnElement, allowing
boolean expressions as result columns, i.e.
select([and_(1, 0)]). [ticket:798]
Diffstat (limited to 'test/sql/query.py')
| -rw-r--r-- | test/sql/query.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/sql/query.py b/test/sql/query.py index fa247a7b2..6ca2a2542 100644 --- a/test/sql/query.py +++ b/test/sql/query.py @@ -200,6 +200,26 @@ class QueryTest(TestBase): self.assert_(not (rp != equal)) self.assert_(not (equal != equal)) + def test_or_and_as_columns(self): + if testing.against('sqlite'): + true, false = 1, 0 + else: + true, false = literal_column('true'), literal_column('false') + + self.assertEquals(testing.db.execute(select([and_(true, false)])).scalar(), False) + self.assertEquals(testing.db.execute(select([and_(true, true)])).scalar(), True) + self.assertEquals(testing.db.execute(select([or_(true, false)])).scalar(), True) + self.assertEquals(testing.db.execute(select([or_(false, false)])).scalar(), False) + self.assertEquals(testing.db.execute(select([not_(or_(false, false))])).scalar(), True) + + row = testing.db.execute(select([or_(false, false).label("x"), and_(true, false).label("y")])).fetchone() + assert row.x == False + assert row.y == False + + row = testing.db.execute(select([or_(true, false).label("x"), and_(true, false).label("y")])).fetchone() + assert row.x == True + assert row.y == False + def test_fetchmany(self): users.insert().execute(user_id = 7, user_name = 'jack') users.insert().execute(user_id = 8, user_name = 'ed') |
